gpt4 book ai didi

C# 循环窗口窗体元素

转载 作者:可可西里 更新时间:2023-11-01 10:56:49 25 4
gpt4 key购买 nike

我有一个包含几个组合框的窗体。我需要完成的是让每个包含项目的组合框将其选择的索引设置为 0。不是手动按名称执行每个组合框,是否有一个函数可以按类型返回所有​​子项。或者获取所有子元素并将它们的类型与组合框元素的类型进行比较?

@noah,您的原始代码起初不起作用,但我所需要的只是提醒 child 被称为控件(谢谢)。

有了这个我做了一个递归函数来设置所有组合框而不仅仅是主窗体的直接后代:

private void recursiveSetComboBox(Control element)
{
foreach (Control a in element.Controls)
{
if (a.Controls.Count != 0)
recursiveSetComboBox(a);
else if (a.GetType().Name == "ComboBox")
{
ComboBox b = (ComboBox)a;

b.SelectedIndex = 0;
}
}
}

recursiveSetComboBox(this);

最佳答案

我会这样做:

foreach (var comboBox in myForm.Controls.OfType<ComboBox>())
{
comboBox.SelectedIndex = 0;
}

如果组合框不直接在表单上而是在容器(组合框、面板等)内,则使用它而不是 myForm。

关于C# 循环窗口窗体元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8504362/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com