繁体   English   中英

在 C# 中将字符串添加到 RichTextBox

[英]Adding strings to a RichTextBox in C#

我目前有一个函数可以为 RichTextBox 设置一个值,尽管您如何“添加”一个值或一个新行,而不是覆盖 RichTextBox 中的现有数据?

richTextBox2.Text = DateTime.Today + " Hello";
richTextBox2.AppendText(Environment.NewLine + DateTime.Today + " Hello"); 
richTextBox2.AppendText(String.Format("{0} the date is {1}{2}", "Hello", DateTime.Today, Environment.NewLine));

请不要使用 +

richTextBox2.Document.Blocks.Clear();
richTextBox2.Document.Blocks.Add(new Paragraph(new Run("string")));

我把它写成一个简单的登录到屏幕的东西,用来通知用户后台发生的事情或确认各种操作。

在表单上添加一个 RichTextBox,这里我称之为“rtbLog”

然后调用下面的并添加您的消息和您想要的任何可选格式。 例如:

DoWriteToLog("Hey, welcome!", true, Color.Green)


public void DoWriteToLog(string strLogMessage, bool blnHighlighted = false, Color myFontColor = default(Color), bool blnNewLine = true)
        {
            string dtStamp = "[" + DateTime.Now.ToString("HH:mm:ss") + "] ";
            if (blnNewLine)
                strLogMessage = dtStamp + strLogMessage + Environment.NewLine;
            if (blnHighlighted)
            {                
                rtbLog.SelectionColor = myFontColor;             // Optional font color passed to method
                if (strLogMessage.ToLower().Contains("help"))       // IF there is 'help' in the message, highlight it blue
                    rtbLog.SelectionBackColor = Color.LightBlue;
                rtbLog.SelectionFont = new Font("Cambria", 10F, FontStyle.Bold, GraphicsUnit.Point);
                rtbLog.AppendText(strLogMessage);                
            }
            else            
                rtbLog.AppendText(strLogMessage);
            rtbLog.ScrollToCaret();
        }

上面的 DoWriteToLog 语句会写“嘿,欢迎!” 到粗体绿色字体的 RichTextBox。 它还会为输入的每一行添加一个时间戳,但您可以通过关闭 blnNewLine 来避免这种情况。 当然,它特定于我的用途,但您可以修改它以适合您的用途。

我还有一个帮助“检测器”,所以如果我在屏幕上放置一条帮助消息,它会以特定颜色突出显示,您可以根据需要评论/删除这两行。

请注意,唯一必需的参数当然是消息。 这样,由于我经常使用它,因此我不必每次都添加所有参数,从而节省了大量输入:-)

richTextBox2.Text = "Something " + richTextBox2.Text + " and something"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM