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属性,但是得到的结果是:程序...
  • our2848884
  • our2848884
  • 2017年04月17日 15:16
  • 1632

C# WPF 线程中更改textbox内容

创建线程 Thread th = new Thread(new ThreadStart(test)); //也可简写为new Thread(ThreadMethod); ...
  • soekchl521
  • soekchl521
  • 2017年02月08日 16:36
  • 601

关于TextBox.Locked属性

几个月了,突然才发现草稿箱有篇翻译文章70%这样了没发表,干脆不管了.有时候真的发现时间就像乳沟,怎么挤还是那么一点 突然写个小程序, 用文物级的VB6随便写两行代码, 又回忆起坑爹的TextBox...
  • prsniper
  • prsniper
  • 2014年09月05日 14:33
  • 1205

Asp.net TextBox值改变了 但后台获取的值未变

1.Asp.net TextBox值改变了 但后台获取的值未变 原来是 Page_Load中未加(IsPostBack) 郁闷了半天 。。。...
  • HandsomClass
  • HandsomClass
  • 2015年12月03日 15:15
  • 1388

TextBox缓存问题

今天要做查询一体机,用户在文本框中
  • fox123871
  • fox123871
  • 2014年05月11日 01:16
  • 1171

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

class Test { public delegate void ThreadStartDelegate(System.Windows.Forms.RichTextBox r...
  • CGS_______
  • CGS_______
  • 2017年02月23日 09:58
  • 1033

C# 线程中修改控件属性方式

1. Control.CheckForIllegalCrossThreadCalls = false; 多个线程同时操作时,有可能会造成控件损坏。变成一个大大地X。 2. 使用异步委托 ...
  • q339659207
  • q339659207
  • 2014年10月28日 12:41
  • 1931

TextBox内容发生改变时触发的事件

方法一:不推荐 1. AutoPostBack="true"; protected void Page_Init(object sender, EventArgs e) { ...
  • u010678947
  • u010678947
  • 2014年07月01日 18:07
  • 2862

在GridView中获得动态TextBox和Text的值

前台: ...
  • abnereel
  • abnereel
  • 2014年06月03日 15:11
  • 3818

如何改变TextBox的高度

默认情况下,TextBox控件只能改变宽度,高度不能改变(单行,TextBox1.Multiline = False),高度是随着TextBox控件的字体大小而自动变化的。其实只需要把AutoSize...
  • hudan
  • hudan
  • 2005年06月25日 22:53
  • 1309
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C#线程中更改TextBox 和RichText的值
举报原因:
原因补充:

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