VS2013 C# WinForm设计,如何方便地选中多个同类控件,一起设置它们的属性?

ooolinux 2017-07-07 02:49:54
VS2013 C# WinForm设计,如何方便地选中多个同类控件,一起设置它们的属性?
就像Delphi的Object TreeView(对象树查看器)中那样,同级(同Parent)控件列表是按名称排序的,控件可以多选。
我知道VS2013有个“文档大纲”窗口(视图——其它窗口——文档大纲),但是貌似不能多选,而且控件列表没有按名称排序就算能多选也不方便。
...全文
1517 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
ooolinux 2017-07-09
  • 打赏
  • 举报
回复
好的,我写出来了
            int i = 1;
            foreach(Control c in Controls)
            {
                if(c is Button)
                {
                    c.Size=new Size(100,25);
                    c.Tag = i;
                    c.Text = "我是按钮"+i++;
                    c.Click += button_Click;

                }
            }
  • 打赏
  • 举报
回复
用foreach循环语句遍历父容器的子控件,并判断子Control的类型。
ooolinux 2017-07-08
  • 打赏
  • 举报
回复
引用 3 楼 duanzi_peng 的回复:
方便地选中多个同类控件,一起设置它们的属性 -》在后台根据父容器找,类似:

Parent.Controls.OfType<CheckBox>().ToList().ForEach(f=>{
    //  TODO:设置f 属性
});
如果在前台设置已经好了某个属性, 再次修改的话岂不是还要在前台都选择一遍。
如果不用lambda表达式,代码怎么写呢?
ooolinux 2017-07-07
  • 打赏
  • 举报
回复
引用 12 楼 From_TaiWan 的回复:
[quote=引用 11 楼 u010165006 的回复:] [quote=引用 10 楼 From_TaiWan 的回复:] 按住Ctrl,点击要选的控件,属性窗口设置
控件多的话还是麻烦的。[/quote]还有种思路,打开designer.cs文件,改代码! 例如:this.button1.Size=system.drawing.size(200,300);,假如有100个button,都设置成200,300,想办法,如用替换方式,成批改代码;或者再另外写个小程序,专门处理这些代码,完了复制回来[/quote] 也是个办法,虽然不是很方便。
秋的红果实 2017-07-07
  • 打赏
  • 举报
回复
引用 11 楼 u010165006 的回复:
[quote=引用 10 楼 From_TaiWan 的回复:] 按住Ctrl,点击要选的控件,属性窗口设置
控件多的话还是麻烦的。[/quote]还有种思路,打开designer.cs文件,改代码! 例如:this.button1.Size=system.drawing.size(200,300);,假如有100个button,都设置成200,300,想办法,如用替换方式,成批改代码;或者再另外写个小程序,专门处理这些代码,完了复制回来
ooolinux 2017-07-07
  • 打赏
  • 举报
回复
引用 10 楼 From_TaiWan 的回复:
按住Ctrl,点击要选的控件,属性窗口设置
控件多的话还是麻烦的。
秋的红果实 2017-07-07
  • 打赏
  • 举报
回复
按住Ctrl,点击要选的控件,属性窗口设置
ooolinux 2017-07-07
  • 打赏
  • 举报
回复
引用 8 楼 myheadachecase 的回复:
[quote=引用 2 楼 u010165006 的回复:] [quote=引用 1 楼 Aisa_Thanatos的回复:]按下Control 然后挨个选中你要设置的控件就行 ,同类控件可以一起设置所有属性 , 不同类控件只能设置共有的属性
在窗体设计界面上吗?如果有很多按钮不规律分布,逐个选中不仅麻烦,也容易遗漏。[/quote] 骚年,按下Control键,点击鼠标左键,移动鼠标选中区域,尽量避开非同类控件,一次性可选中多个控件;已选中的控件中包含其它控件?同样按Control后点击要排除的控件,实现反选。 这描述只能这样了。。。手法自己把握,自己视情况决定是用IDE属性设置还是自己写代码批量设置了。[/quote] 这样还是可以的。
班门弄武 2017-07-07
  • 打赏
  • 举报
回复
引用 2 楼 u010165006 的回复:
[quote=引用 1 楼 Aisa_Thanatos的回复:]按下Control 然后挨个选中你要设置的控件就行 ,同类控件可以一起设置所有属性 , 不同类控件只能设置共有的属性
在窗体设计界面上吗?如果有很多按钮不规律分布,逐个选中不仅麻烦,也容易遗漏。[/quote] 骚年,按下Control键,点击鼠标左键,移动鼠标选中区域,尽量避开非同类控件,一次性可选中多个控件;已选中的控件中包含其它控件?同样按Control后点击要排除的控件,实现反选。 这描述只能这样了。。。手法自己把握,自己视情况决定是用IDE属性设置还是自己写代码批量设置了。
  • 打赏
  • 举报
回复
引用 6 楼 u010165006 的回复:
[quote=引用 5 楼 duanzi_peng 的回复:] [quote=引用 4 楼 u010165006 的回复:] [quote=引用 3 楼 duanzi_peng 的回复:] 方便地选中多个同类控件,一起设置它们的属性 -》在后台根据父容器找,类似:

Parent.Controls.OfType<CheckBox>().ToList().ForEach(f=>{
    //  TODO:设置f 属性
});
如果在前台设置已经好了某个属性, 再次修改的话岂不是还要在前台都选择一遍。
这个是通过代码方式吧,不是在属性窗口设置。 代码也不太看得懂,OfType()、ToList()、ForEach()这几个都是()函数吗,不是属性?[/quote] 是的,在构造函数或者窗口加载的事件中设置。 这几个函数搜搜用法很容易理解。[/quote] Parent要换成this或具体的容器控件?[/quote] 是的
ooolinux 2017-07-07
  • 打赏
  • 举报
回复
引用 5 楼 duanzi_peng 的回复:
[quote=引用 4 楼 u010165006 的回复:] [quote=引用 3 楼 duanzi_peng 的回复:] 方便地选中多个同类控件,一起设置它们的属性 -》在后台根据父容器找,类似:

Parent.Controls.OfType<CheckBox>().ToList().ForEach(f=>{
    //  TODO:设置f 属性
});
如果在前台设置已经好了某个属性, 再次修改的话岂不是还要在前台都选择一遍。
这个是通过代码方式吧,不是在属性窗口设置。 代码也不太看得懂,OfType()、ToList()、ForEach()这几个都是()函数吗,不是属性?[/quote] 是的,在构造函数或者窗口加载的事件中设置。 这几个函数搜搜用法很容易理解。[/quote] Parent要换成this或具体的容器控件?
  • 打赏
  • 举报
回复
引用 4 楼 u010165006 的回复:
[quote=引用 3 楼 duanzi_peng 的回复:] 方便地选中多个同类控件,一起设置它们的属性 -》在后台根据父容器找,类似:

Parent.Controls.OfType<CheckBox>().ToList().ForEach(f=>{
    //  TODO:设置f 属性
});
如果在前台设置已经好了某个属性, 再次修改的话岂不是还要在前台都选择一遍。
这个是通过代码方式吧,不是在属性窗口设置。 代码也不太看得懂,OfType()、ToList()、ForEach()这几个都是()函数吗,不是属性?[/quote] 是的,在构造函数或者窗口加载的事件中设置。 这几个函数搜搜用法很容易理解。
ooolinux 2017-07-07
  • 打赏
  • 举报
回复
引用 3 楼 duanzi_peng 的回复:
方便地选中多个同类控件,一起设置它们的属性 -》在后台根据父容器找,类似:

Parent.Controls.OfType<CheckBox>().ToList().ForEach(f=>{
    //  TODO:设置f 属性
});
如果在前台设置已经好了某个属性, 再次修改的话岂不是还要在前台都选择一遍。
这个是通过代码方式吧,不是在属性窗口设置。 代码也不太看得懂,OfType()、ToList()、ForEach()这几个都是()函数吗,不是属性?
  • 打赏
  • 举报
回复
方便地选中多个同类控件,一起设置它们的属性 -》在后台根据父容器找,类似:

Parent.Controls.OfType<CheckBox>().ToList().ForEach(f=>{
    //  TODO:设置f 属性
});
如果在前台设置已经好了某个属性, 再次修改的话岂不是还要在前台都选择一遍。
ooolinux 2017-07-07
  • 打赏
  • 举报
回复
引用 1 楼 Aisa_Thanatos的回复:
按下Control 然后挨个选中你要设置的控件就行 ,同类控件可以一起设置所有属性 , 不同类控件只能设置共有的属性
在窗体设计界面上吗?如果有很多按钮不规律分布,逐个选中不仅麻烦,也容易遗漏。
Acme_Thanatos 2017-07-07
  • 打赏
  • 举报
回复
按下Control 然后挨个选中你要设置的控件就行 ,同类控件可以一起设置所有属性 , 不同类控件只能设置共有的属性

111,076

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧