我的表单中有一些复选框,其中一些复选框位于特定形式的面板中(两种不同的问题) 我放置了一个按钮,当用户点击它时,所有复选框的大小应该改变(在所有面板和表格中)。
另一个问题是,如何以编程方式找到我的应用程序中的控件类型?
感谢您的帮助。
我放了一个按钮并添加了一个事件处理程序
为了建立控件的类型,我使用了控件的名称
这是我的尝试:
foreach (Control ctrl in this.Controls)
if (ctrl.Name.Contains("combo"))
checkbox1.SetSize = new Size(40,40);
答案 0 :(得分:1)
如果您打算使用一个函数来处理多个OnClick - 事件,您可以从发件人那里获取原点(发件人是处理程序实现的给定参数)
(如果这是问题,你应该清楚你想要做什么并显示你的相关代码)
答案 1 :(得分:0)
根据评论进行更改:
您可以遍历所有控件以查找所有复选框:
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)
{
// ...
}
您可以为主表单调用此方法。
记住,你应该考虑一般的方法,因为如果你使用这样的循环,似乎你的解决方案中的某些东西是不对的。
答案 2 :(得分:0)
最简单的方法是使用this extension method循环遍历所有复选框
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