如何更改不同面板或窗体中控件的大小(winform)c
本文关键字:winform 控件 何更改 窗体 | 更新日期: 2023-09-27 18:20:07
我的表单中有一些复选框,其中一些复选框以特定的形式出现在面板中(两种不同的情况)
我放置了一个按钮,当用户点击该按钮时,所有复选框的大小都应该改变(在所有面板和表单中)。
另一个问题是,我如何才能发现我的应用程序中的控件类型是什么?
谢谢你的帮助
我放置了一个按钮并添加了一个事件处理程序
为了建立控件的类型,我使用了控件的名称这是我的尝试:
foreach (Control ctrl in this.Controls)
if (ctrl.Name.Contains("combo"))
checkbox1.SetSize = new Size(40,40);
如果您计划使用一个Function来处理多个OnClick-事件,您可以从发送方获得来源(发送方是处理程序实现的给定参数)
(如果是这样的话,你应该明确你到底想做什么,并显示你的相关代码)
最简单的方法是使用此扩展方法循环所有复选框
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
根据注释更改:
您可以循环浏览所有控件以查找所有复选框:
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)
{
// ...
}
您可以为您的主窗体调用此方法。
记住,你应该考虑一下你的方法,因为如果你使用这样的循环,在你的解决方案中似乎有一些不正确的地方。