C#中数据的传递以及ToolStripProgressBar
更新时间:2020年6月25日 11:22 点击:2227
代码:
方法一:窗体的代码-->可以直接通过预设的Click事件来实现控制进度条。
public partial class Form1 : Form { public Form1() { InitializeComponent(); toolStripProgressBar_save.Minimum = 0; toolStripProgressBar_save.Maximum = 100; toolStripProgressBar_save.Step = 5; } #region 不涉及数据传输 private void button_10_Click(object sender, EventArgs e) { //清空进度表 toolStripProgressBar_save.Value = 0; if(toolStripProgressBar_save.Value<10) { for (int i=0;i<2;i++) { toolStripProgressBar_save.PerformStep(); toolStripLabel_save.Text = toolStripProgressBar_save.Value.ToString() + "%"; } } } private void button_30_Click(object sender, EventArgs e) { if (toolStripProgressBar_save.Value < 30) { for(int i=0;i<4;i++) { toolStripProgressBar_save.PerformStep(); } } toolStripLabel_save.Text = "30%"; } private void button_50_Click(object sender, EventArgs e) { if (toolStripProgressBar_save.Value < 50) { for (int i = 0; i < 4; i++) { toolStripProgressBar_save.PerformStep(); } } toolStripLabel_save.Text = "50%"; } private void button_60_Click(object sender, EventArgs e) { if (toolStripProgressBar_save.Value < 60) { for (int i = 0; i < 2; i++) { toolStripProgressBar_save.PerformStep(); } } toolStripLabel_save.Text = "60%"; } private void button_80_Click(object sender, EventArgs e) { if (toolStripProgressBar_save.Value < 80) { for (int i = 0; i < 4; i++) { toolStripProgressBar_save.PerformStep(); } } toolStripLabel_save.Text = "80%"; } private void button_100_Click(object sender, EventArgs e) { if (toolStripProgressBar_save.Value < 100) { for (int i = 0; i < 4; i++) { toolStripProgressBar_save.PerformStep(); } } toolStripLabel_save.Text = "Complete!"; } #endregion private void button_save_Click(object sender, EventArgs e) { Save.Singleton().SaveAll(); } }
方法二:通过调用其他类里的方法来实现对进度条的控制。
注意一:需要using System.Windows.Forms;
注意二:进度条ToolStripProgressBar的权限需要改成Public
public class Save { private static Save _instance = null; private Form1 n = null; public void SaveAll() { getWnd(); n.toolStripProgressBar_save.Minimum = 0; n.toolStripProgressBar_save.Maximum = 100; //清空进度表 n.toolStripProgressBar_save.Value = 0; n.toolStripProgressBar_save.Step = 5; #region 保存过程-与单独按钮是一样的 if (n.toolStripProgressBar_save.Value < 10) { for (int i = 0; i < 2; i++) { n.toolStripProgressBar_save.PerformStep(); n.toolStripLabel_save.Text = n.toolStripProgressBar_save.Value.ToString() + "%"; } } Thread.Sleep(1000); if (n.toolStripProgressBar_save.Value < 30) { for (int i = 0; i < 4; i++) { n.toolStripProgressBar_save.PerformStep(); n.toolStripLabel_save.Text = n.toolStripProgressBar_save.Value.ToString()+"%"; } } Thread.Sleep(100); if (n.toolStripProgressBar_save.Value < 50) { for (int i = 0; i < 4; i++) { n.toolStripProgressBar_save.PerformStep(); n.toolStripLabel_save.Text = n.toolStripProgressBar_save.Value.ToString() + "%"; } } Thread.Sleep(100); if (n.toolStripProgressBar_save.Value < 60) { for (int i = 0; i < 2; i++) { n.toolStripProgressBar_save.PerformStep(); n.toolStripLabel_save.Text = n.toolStripProgressBar_save.Value.ToString() + "%"; } } Thread.Sleep(100); if (n.toolStripProgressBar_save.Value < 80) { for (int i = 0; i < 4; i++) { n.toolStripProgressBar_save.PerformStep(); n.toolStripLabel_save.Text = n.toolStripProgressBar_save.Value.ToString() + "%"; } } Thread.Sleep(100); if (n.toolStripProgressBar_save.Value < 100) { for (int i = 0; i < 4; i++) { n.toolStripProgressBar_save.PerformStep(); n.toolStripLabel_save.Text = n.toolStripProgressBar_save.Value.ToString() + "%"; } } n.toolStripLabel_save.Text = "Complete!"; Thread.Sleep(100); #endregion } //查找当前打开的窗体,必须有这个才能传递数据 private void getWnd() { foreach(Form fm in Application.OpenForms) { if (fm.Name == "Form1") { n = (Form1)fm; break; } } } public static Save Singleton() { if (_instance == null) { _instance = new Save(); } return _instance; } }
效果图:(左边为方法一的效果、右边为方法二的效果图)
上一篇: c#学习之30分钟学会XAML
下一篇: 详解C#获取特定进程CPU和内存使用率
相关文章
- 本文给大家分享C#连接SQL数据库和查询数据功能的操作技巧,本文通过图文并茂的形式给大家介绍的非常详细,需要的朋友参考下吧...2021-05-17
- 最基础的对数据的增加删除修改操作实例,菜鸟们收了吧...2013-09-26
- 这篇文章主要介绍了解决Mybatis 大数据量的批量insert问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-01-09
Antd-vue Table组件添加Click事件,实现点击某行数据教程
这篇文章主要介绍了Antd-vue Table组件添加Click事件,实现点击某行数据教程,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-11-17- 这篇文章主要介绍了详解如何清理redis集群的所有数据,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-02-18
- 这篇文章主要介绍了vue 获取到数据但却渲染不到页面上的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-11-19
- 在php中解析xml文档用专门的函数domdocument来处理,把json在php中也有相关的处理函数,我们要把数据xml 数据存到一个数据再用json_encode直接换成json数据就OK了。...2016-11-25
- 这篇文章主要介绍了mybatis-plus 处理大数据插入太慢的解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-12-18
- 这篇文章主要介绍了postgresql数据添加两个字段联合唯一的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-04
Vue生命周期activated之返回上一页不重新请求数据操作
这篇文章主要介绍了Vue生命周期activated之返回上一页不重新请求数据操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-07-26- 这篇文章主要介绍了c# socket网络编程,server端接收,client端发送数据,大家参考使用吧...2020-06-25
- 这篇文章主要介绍了vue 数据(data)赋值问题的解决方案,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-29
- 这篇文章主要介绍了Python3 常用数据标准化方法详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-24
- 这篇文章主要介绍了解决vue watch数据的方法被调用了两次的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-11-07
- 这篇文章主要为大家详细介绍了node.js从数据库获取数据的具体代码,nodejs可以获取具体某张数据表信息,感兴趣的朋友可以参考一下...2016-05-09
- 第一种解决方案的原理是:将线程执行的方法和参数都封装到一个类里面。通过实例化该类,方法就可以调用属性来实现间接的类型安全地传递多个参数...2020-06-25
- 使用下以两种方法时必须把字段设为”主键(PRIMARY KEY”或”唯一约束(UNIQUE)”。1:使用REPLACE INTO (此种方法是利用替换的方法,有点似类于先删除再插入) 复制代码 代码如下:REPLACE INTO Syntax REPLACE [LOW_PRIO...2013-10-04
- 这篇文章主要介绍了PostgreSQL 恢复误删数据的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-01-18
- 这篇文章主要介绍了C#实现窗体间传递数据实例,需要的朋友可以参考下...2020-06-25
DTO 实现 service 和 controller 之间值传递的操作
这篇文章主要介绍了DTO 实现 service 和 controller 之间值传递的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-22