首页 > 代码库 > winform 异步添加文本提示

winform 异步添加文本提示

后台代码:

技术分享
 1 using System;
 2 using System.Collections.Generic;
 3 using System.ComponentModel;
 4 using System.Data;
 5 using System.Drawing;
 6 using System.Linq;
 7 using System.Text;
 8 using System.Windows.Forms;
 9 using System.Threading;
10 
11 namespace winform
12 {
13     public partial class Form2 : Form
14     {
15         public Form2()
16         {
17             InitializeComponent();
18         }
19         //创建一个委托,是为访问TextBox控件服务的。
20         public delegate void UpdateTxt(string msg);
21         //定义一个委托变量
22         public UpdateTxt updateTxt;
23 
24         //修改TextBox值的方法。
25         public void UpdateTxtMethod(string msg)
26         {
27             richTextBox1.AppendText(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff")+":"+ msg + "\r\n");
28             richTextBox1.ScrollToCaret();
29         }
30 
31         //此为在非创建线程中的调用方法,其实是使用TextBox的Invoke方法。
32         public void ThreadMethodTxt(int n)
33         {
34             this.BeginInvoke(updateTxt, "线程开始执行,执行" + n + "次,每一秒执行一次");
35             for (int i = 0; i < n; i++)
36             {
37                 this.BeginInvoke(updateTxt, i.ToString());
38                 //一秒 执行一次
39                 Thread.Sleep(1000);
40             }
41             this.BeginInvoke(updateTxt, "线程结束");
42         }
43         //开启线程
44         private void button1_Click(object sender, EventArgs e)
45         {
46             Thread objThread = new Thread(new ThreadStart(delegate
47             {
48                 ThreadMethodTxt(Convert.ToInt32(textBox1.Text.Trim()));
49             }));
50             objThread.Start();
51         }
52 
53         private void ShowMsg(string str)
54         {
55             if (updateTxt == null)
56                 updateTxt = new UpdateTxt(UpdateTxtMethod);
57             this.BeginInvoke(updateTxt, str);
58         }
59 
60         private void Form1_Load_1(object sender, EventArgs e)
61         {
62             //实例化委托
63             updateTxt = new UpdateTxt(UpdateTxtMethod);
64             richTextBox1.Anchor = AnchorStyles.None;
65         }
66 
67         private void button2_Click(object sender, EventArgs e)
68         {
69             ShowMsg("1");
70         }
71     }
72 }
View Code

效果: 

技术分享

参考:http://www.sufeinet.com/thread-3556-1-1.html

 

winform 异步添加文本提示