zoukankan      html  css  js  c++  java
  • BackgroundWorker 后台进程控制窗体label、richtextbook内容刷新

        昨天写了一个从文章中提取关键词的程序,写完处理的逻辑后又花了好几个小时在用户友好性上。加了几个progressBar,有显示总进度的、有显示分布进度的。。因为程序要跑好几个小时才能执行好,只加个总进度的话感觉不太明显。一个label,显示当先操作的具体内容,还有个richtextbox显示出所有操作哦。。

       直接扔代码咯,接好:

    1 this.Invoke(new MethodInvoker(delegate() {  label1.Text = "正在处理... "; label1.Refresh(); }));

    把它放在backgroundWorker1_DoWork()就能实现后台进程管理label内容。

    在对richtextbox操作是,我起初使用的也是这个代码,但运行时才发现,richtextbox的光标不会自动下移。所以还要加点代码:

    1 this.Invoke(new MethodInvoker(delegate() {
    2 richTextBox1.AppendText(text); 
    3 richTextBox1.SelectionStart = richTextBox1.Text.Length;
    4 richTextBox1.ScrollToCaret();}));

    那个.Refresh()被我省略掉了,但运行效果没有变化耶~~

    附上个效果图吧:

  • 相关阅读:
    POJ1275 Cashier Employment 【二分 + 差分约束】
    POJ1201 Intervals 【差分约束】
    BZOJ1563/洛谷P1912 诗人小G 【四边形不等式优化dp】
    BZOJ4197 [Noi2015]寿司晚宴 【状压dp】
    thusc2018酱油记
    HDU 4734
    Codeforces 55D
    HDU 3652
    HDU 4352
    HDU 3709
  • 原文地址:https://www.cnblogs.com/WMTcore/p/3841055.html
Copyright © 2011-2022 走看看