C#线程中更改TextBox 和RichText的值

原创 2012年07月31日 10:30:25

C#线程中更改TextBox 和RichText的值

        delegate void SetTextCallback(string text);
        private void SetText(string text)
        {
            if (this.txtLog.InvokeRequired)
            {
                SetTextCallback d = new SetTextCallback(SetText);
                this.Invoke(d, new object[] { text });
            }
            else
            {
                txtLog.AppendText(text + Environment.NewLine);
                txtLog.ScrollToCaret();

                this.txtLog.Focus();
                this.txtLog.Select(this.txtLog.TextLength, 0);
                this.txtLog.ScrollToCaret();
            }
        }
RichText可以设置字体、字体颜色、背景色等信息

private bool m_bolHighlight = false;
        private delegate void delInfoList(string text);//申明委托,防止不同线程设置richtextbox时出现错误
        void SetrichTextBox(string value)
        {

            if (rtxtLogs.InvokeRequired)
            {
                delInfoList d = new delInfoList(SetrichTextBox);
                rtxtLogs.Invoke(d, value);
            }
            else
            {
                if (rtxtLogs.Lines.Length > 5000)
                {
                    rtxtLogs.Clear();                    
                }

                //========richtextbox滚动条自动移至最后一条记录
                //让文本框获取焦点  
                rtxtLogs.Focus();
                //设置光标的位置到文本尾  
                rtxtLogs.Select(rtxtLogs.TextLength, 0);
                //滚动到控件光标处  
                rtxtLogs.ScrollToCaret();
                if (m_bolHighlight)
                {
                    rtxtLogs.SelectionFont = new Font("Verdana", 9, FontStyle.Bold);
                    rtxtLogs.SelectionColor = Color.Red;
                }
                rtxtLogs.AppendText(value + Environment.NewLine);                
            }
        }


相关文章推荐

C#中子线程修改主线程中textBox的内容

在编写小软件的过程中,用到了线程操作。但是其中有一个问题是,创建的子线程想修改主程序的textBox的内容,原先的想法就是在子进程调用的函数中直接修改主程序的textBox属性,但是得到的结果是:程序...

C#设置textBox字体属性

//设置字体外观样式(例如斜体、粗体等) textBox1.Font = new Font(textBox1.Font, textBox1.Font.Style | F...

线程间操作无效: 从不是创建控件“textBox2”的线程访问它。

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; ...

Winform跨线程打印日志到TextBox(使用委托跨线程访问控件)

class Test { public delegate void ThreadStartDelegate(System.Windows.Forms.RichTextBox r...

[寒江孤叶丶的Cocos2d-x之旅_21]3.x RichText自动适应高度,formarRenderers 自动更改高度 疑似BUG修复

原创文章,欢迎转载,转载请注明:文章来自[寒江孤叶丶的CrossApp之旅系列] 博客地址:http://blog.csdn.net/qq446569365 RichText 是Cocos GUI...

C#-WinForm跨线程修改UI界面的实例

  • 2017年11月14日 18:04
  • 47KB
  • 下载

c#线程参考手册

  • 2015年01月04日 21:27
  • 12.16MB
  • 下载

C#winform设置textbox属性不可编辑

Java Web开发如何设置单选按钮的属性,使得一旦选中某一个单选按钮,就不可编辑单选按钮呢 怎么设置单选按钮的属性,使得一旦选中某一个单选按钮,就不可编辑单选按钮呢? " > VB...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C#线程中更改TextBox 和RichText的值
举报原因:
原因补充:

(最多只允许输入30个字)