[英]how to change size of controls in different panels or forms (winform) c#
我的表单中有一些复选框,面板中有一些特定形式的复选框(两个不同的问题)。
我放置了一个按钮,当用户单击该按钮时,所有复选框的大小都应更改(在所有面板和表单中)。
另一个问题是,如何找到程序中应用程序中控件的类型是什么?
谢谢你的帮助。
我放置了一个按钮并添加了一个事件处理程序。
为了找到控件的类型,我使用了控件的名称,这是我的尝试:
foreach (Control ctrl in this.Controls)
if (ctrl.Name.Contains("combo"))
checkbox1.SetSize = new Size(40,40);
如果您打算使用一个功能来处理多个OnClick-事件,则可以从发送方获取来源(发送方是处理程序实现的给定参数)
(如果这是问题所在,则应明确您要做什么并显示相关代码)
根据评论更改:
您可以循环浏览所有控件以找到所有复选框:
private void ProcessControls(Control containerControl)
{
foreach (Control control in containerControl.Controls)
{
if (control is CheckBox)
{
ChangeCheckBoxProperties((CheckBox)control);
}
else
{
ProcessControls(control);
}
}
}
private void ChangeCheckBoxProperties(CheckBox cb)
{
// ...
}
您可以为您的主窗体调用此方法。
在思想上,您应该大致考虑一下您的方法,因为如果使用这样的循环,则似乎解决方案不正确。
最简单的方法是使用此扩展方法来遍历所有复选框
foreach(var checkBox in this.GetAll<CheckBox>())
checkBox.Size = new Size(40,40);
没有这个,您将不得不分别遍历面板
foreach(var panel in this.Controls.OfType<Panel>())
foreach(var checkbox in panel.Controls.OfType<CheckBox>())
//set size in panel
foreach(var checkbox in this.Controls.OfType<CheckBox>())
//set size in form
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.