>" 部分加粗显示在富文本框中。 以下是我单击消息发送按钮时的代码。 displayBox 是粗体字样的 id,entryBox 是用户输入消息的地方。 -6ren">
gpt4 book ai didi

C# 将 RichTextBox 中的字符串的一部分加粗

转载 作者:太空宇宙 更新时间:2023-11-03 19:23:32 24 4
gpt4 key购买 nike

我试图将此字符串的 "You >>" 部分加粗显示在富文本框中。

以下是我单击消息发送按钮时的代码。 displayBox 是粗体字样的 id,entryBox 是用户输入消息的地方。

        private void button1_Click(object sender, EventArgs e)
{
listData.Add(entryBox.Text);
// Remove the linebreak caused by pressing return
SendKeys.Send("\b");


// Empty the array string
ArrayData = "";

// Bold the You >>
displayBox.SelectionStart = 0;
displayBox.SelectionLength = 6;
displayBox.SelectionFont = new Font(displayBox.Font, FontStyle.Bold);
displayBox.SelectionLength = 0;

foreach (string textItem in listData)
{
ArrayData = ArrayData + "You >> " + textItem + "\r\n";
}
entryBox.Focus();
displayBox.Text = "";
displayBox.Refresh();
displayBox.Text = ArrayData;
entryBox.Text = "";

}

任何帮助都会很好。

最佳答案

这个问题在@dash 评论中的链接的帮助下得到了解决。链接:http://msmvps.com/blogs/deborahk/archive/2009/10/31/richtextbox-styles.aspx

这是我的代码,因为它现在代表同一个按钮(尽管我已将其重命名)。这可能不是解决这个问题的最干净的方法,但我达到了预期的结果,所以我很高兴。评论中有解释。

        private void send_Click(object sender, EventArgs e)
{
if (entryBox.Text != "")
{
listData.Add(entryBox.Text);
// Remove the linebreak caused by pressing return
SendKeys.Send("\b");

// Empty the array string
ArrayData = "";

foreach (string textItem in listData)
{
ArrayData = ArrayData + "You >> " + textItem + "\r\n";
}
entryBox.Focus();
displayBox.Text = "";
displayBox.Refresh();
displayBox.Text = ArrayData;

// Format the "You >>"
displayBox.SelectionStart = 0;
displayBox.SelectionLength = 6;
displayBox.SelectionFont = new Font(displayBox.Font, FontStyle.Bold);
displayBox.SelectionColor = Color.Crimson;
displayBox.SelectionLength = 0;
string wordToFind = "You >>";
int startIndex = 0;
while (startIndex > -1)
{
startIndex = displayBox.Find(wordToFind, startIndex + 1,
displayBox.Text.Length,
RichTextBoxFinds.WholeWord);
if (startIndex > -1)
{
displayBox.Select(startIndex, wordToFind.Length);
displayBox.SelectionFont = new Font(displayBox.Font, FontStyle.Bold);
displayBox.SelectionColor = Color.Crimson;
}
}
// Reset the entry box to empty
entryBox.Text = "";

}
// Remove the linebreak caused by pressing return
SendKeys.Send("\b");
}

我希望这能为遇到类似问题的任何人提供一些帮助!

: 丹

关于C# 将 RichTextBox 中的字符串的一部分加粗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10383772/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com