c# – 如何从其他类更新进度条?

c# – 如何从其他类更新进度条?,第1张

概述我有一个用c#编写的命令行工具(我有源代码),我在visual studio 2010中制作了一个gui.在gui中我想更新进度条以反映工具 *** 作的进度.我如何从工具内部发出已取得进展的信号并更新进度条? 我正在做的一些简化示例代码. private void doThings_Click(object sender, EventArgs e){ myToolInstance.doWorkTh 我有一个用c#编写的命令行工具(我有源代码),我在visual studio 2010中制作了一个gui.在gui中我想更新进度条以反映工具 *** 作的进度.我如何从工具内部发出已取得进展的信号并更新进度条?
我正在做的一些简化示例代码.

private voID doThings_Click(object sender,EventArgs e){  myToolinstance.doWorkThatNeedsToReportProgress();}

该工具正在完成的工作是一系列函数调用,通常在30左右.我想在每次完成其中一个时更新进度条.

解决方法 在包含进度条的表单中创建公共属性或公共方法

public voID SetProgress(int progress){    progressbar.Progress = progress;}

现在您可以使用更新进度条

myForm.SetProgress(50);

另一种方法是在某处使用ProgressChanged事件,并让表单订阅此事件.

public class Tool {    public event Action<int> ProgressChanged;    private voID OnProgressChanged(int progress)     {        var eh = ProgressChanged;        if (eh != null) {            eh(progress);        }    }    public voID DoSomething()    {        ...        OnProgressChanged(30);        ...    }}

在表单中你会有这样的东西

private Tool _tool;public MyForm () // Constructor of your form{    _tool = new Tool();    _tool.ProgressChanged += Tool_ProgressChanged;}private voID Tool_ProgressChanged(int progress){    progressbar.Progress = progress;}
总结

以上是内存溢出为你收集整理的c# – 如何从其他类更新进度条?全部内容,希望文章能够帮你解决c# – 如何从其他类更新进度条?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1222222.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-05
下一篇2022-06-05

发表评论

登录后才能评论

评论列表(0条)

    保存