首页 新闻 会员 周边 捐助

C# 中使用变量控制控件

0
悬赏园豆:20 [已解决问题] 解决于 2020-06-08 21:42

我在Winform中,放了12个textbox;
从textbox1 直到textbox12
我想使用类似: textbox[i] 这样的方法来批量的修改 textbox中的值;
不知道在C#中可以用哪种方法实现这样的操作。
先在此谢谢各位大侠。

小白沙的主页 小白沙 | 初学一级 | 园豆:105
提问于:2020-06-07 21:44
< >
分享
最佳答案
0
  1. 这基本是个比较入门的题目,一般很多入门书上能找到。
  2. 第一个方法,动态创建textbox,创建的同时,就保存在变量数组中,你访问变量数组就是 arr[0], arr[1]
    这样的,如果觉得不直观,数组名字改为 textbox就行了。
  3. 静态设计时的 textbox 也行,土一点的方法,就是直接硬写, textbox[0] =Textbox0。
  4. 稍微进阶一点的方式,就是把12个文本框放在一个容器中,你可以使用容器的 controls 字段对内部控件进行遍历。这样就避免了太硬的编码。
  5. 但通常情况下,多个相同的控件很少用这样的设计,会使用比如 DataGrid 这类多行控件来实现,也就从 fixed 的12行变成了任意的N 行了。
收获园豆:15
爱编程的大叔 | 高人七级 |园豆:30844 | 2020-06-08 08:57

多谢指点

小白沙 | 园豆:105 (初学一级) | 2020-06-08 21:43
其他回答(4)
0

大叔所言极是,我小时候搞过,就是用的大叔说的第4中方式

会长 | 园豆:12463 (专家六级) | 2020-06-08 09:24
0

来来来,我来实现两位大神的第4中方法。
先拖一个pannel控件,再拖12个textbox。
然后双击窗体进入窗体加载页面,循环pannel下的所有控件,如果是文本框,则赋值。
效果如截图:

收获园豆:5
龙行天涯 | 园豆:1794 (小虾三级) | 2020-06-08 14:29

多谢指点

支持(0) 反对(0) 小白沙 | 园豆:105 (初学一级) | 2020-06-08 21:43
0

Create:values.Foreach(t=>Controls.Add(new TextBox{Text=t}));

Modify:Controls.OfType<TextBox>.ToList().Foreach(t=>t.Text=????);

花飘水流兮 | 园豆:13617 (专家六级) | 2020-06-08 21:01
0

理解什么是引用类型,Load后建个List<TextBox> Boxs 把界面拖好的控件依次Add进去。Boxs[0].Text="我是大娃"。textBox1里面就变成“我是大娃了”,注意跨线程。

陈夏松 | 园豆:147 (初学一级) | 2020-06-09 09:16
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册