首页 > 代码库 > 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 }
效果:
参考:http://www.sufeinet.com/thread-3556-1-1.html
winform 异步添加文本提示
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。