Впервые я изучаю RichTextBox
элементы управления в формах C # Windows. Я знаю, что мне нужен этот элемент управления в моем приложении, так как TextBox
слишком просто для моих нужд.
У меня есть следующий код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace _19_richtextbox
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void richTextBoxHome_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyValue == (char)(Keys.Return))
{
richTextBoxChat.AppendText("Home:" + richTextBoxHome.Text + "\n");
richTextBoxHome.Clear();
}
}
}
}
На данный момент я просто хочу, чтобы все, что напечатано в одном RichTextBox
, отображалось на другом RichTextBox
при нажатии Return .
Проблема заключается в том, что каждый раз, когда я нажимаю Return , данные передаются другому элементу управления, но первый элемент управления остается с возвратом каретки перед курсором. Это происходит каждый раз, когда я нажимаю Return . Оба элемента управления принимают многострочный ввод. Как мне заставить это перестать делать это?
Мне бы хотелось, чтобы часть "Home:" была выделена жирным шрифтом.
Я нашел очень мало информации об этом в моих поисках. Вот единственный действительный код, который я мог понять.
rtb1.Rtf = @"{\rtf1\ansi {\b hello} {\i World}}" ;
richTextBox1.Rtf = @"{\rtf1\ansi This is in \b bold\b0.}";
Я не уверен, как поступить с этой информацией. я просто хочу, чтобы richtextbox отображал «Home:» и «Away:» жирным шрифтом и мог обрабатывать URL-адреса в тексте.
, пожалуйста, посоветуйте, что я должен указать при поиске этой статьи в Google, или любая ссылка, о которой вы могли подумать, будет очень полезна.
Еще раз спасибо за проявленный интерес.
Я добился прогресса в своей проблеме и подумал поделиться.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace _19_richtextbox
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void richTextBoxHome_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == (char)(Keys.Enter))
{
e.Handled = true;
// richTextBoxChat.Rtf = @"{\rtf1 \b Home: \bO}" + @richTextBoxHome;
// do not delete next 2 lines
//string test = @"{\rtf1 \b Home: \b0";
//test = test + richTextBoxHome.Rtf + "}";
string chatBuffer = richTextBoxChat.Rtf;
string buffer = @"{\rtf1";
buffer = buffer + chatBuffer;
buffer = buffer + @"\b Home:\b0";
buffer = buffer + richTextBoxHome.Rtf + "}";
// MessageBox.Show(buffer);
richTextBoxChat.Rtf = buffer;
//do not delete the following 2 lines
//richTextBoxChat.AppendText("Home:" + richTextBoxHome.Text);
richTextBoxHome.Clear();
}
}
}
}
просто нужно выяснить, как избавиться от новых строк / возвратов каретки в тексте.
любые советы приветствуются.
спасибо.
это не так хорошо тренируется. закончил тем, что использовал ниже.
this.richTextBoxChat.SelectionFont = new Font(this.richTextBoxChat.Font.FontFamily, this.Font.Size, FontStyle.Bold);
richTextBoxChat.AppendText("Home: ");
this.richTextBoxChat.SelectionFont = new Font(this.richTextBoxChat.Font.FontFamily, this.Font.Size, FontStyle.Regular);
richTextBoxChat.AppendText(richTextBoxHome.Text);
richTextBoxChat.ScrollToCaret();
richTextBoxHome.Clear();