当前位置:首页 > 通信资讯 > 正文

c# 类之间数据传递(c# 按值传递)

代码:

方法一:窗体的代码-->可以直接通过预设的click事件来实现控制进度条。

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 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

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 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# 类之间数据传递(c# 按值传递)c# 类之间数据传递(c# 按值传递)

如果您对该产品感兴趣,请填写办理(客服微信:xiaoxiongyidong)

为您推荐:

发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。