c# – 如何从其他类更新进度条?
发布时间:2020-12-16 00:04:22 所属栏目:百科 来源:网络整理
导读:我有一个用c#编写的命令行工具(我有源代码),我在visual studio 2010中制作了一个gui.在gui中我想更新进度条以反映工具操作的进度.我如何从工具内部发出已取得进展的信号并更新进度条? 我正在做的一些简化示例代码. private void doThings_Click(object send
我有一个用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; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |