gpt4 book ai didi

asp.net - 循环控制

转载 作者:行者123 更新时间:2023-12-04 22:53:31 26 4
gpt4 key购买 nike

在我的代码中,我需要遍历 GroupBox 中的控件并仅在它是 ComboBox 时才处理该控件。我正在使用代码:

foreach (System.Windows.Forms.Control grpbxChild in this.gpbx.Controls)
{
if (grpbxChild.GetType().Name.Trim() == "ComboBox")
{
// Process here
}
}

我的问题是:是否可以只从 GroupBox 中获取组合框,而不是遍历所有控件并仅处理组合框?像这样的东西:
foreach (System.Windows.Forms.Control grpbxChild in this.gpbx.Controls.GetControlsOfType(ComboBox))
{
// Process here
}

最佳答案

由于您使用的是 C# 2.0,因此您的运气非常差。你可以自己写一个函数。在 C# 3.0 中,您只需执行以下操作:

foreach (var control in groupBox.Controls.OfType<ComboBox>())
{
// ...
}

C# 2.0 解决方案:
public static IEnumerable<T> GetControlsOfType<T>(ControlCollection controls)
where T : Control
{
foreach(Control c in controls)
if (c is T)
yield return (T)c;
}

你会使用这样的:
foreach (ComboBox c in GetControlsOfType<ComboBox>(groupBox.Controls))
{
// ...
}

关于asp.net - 循环控制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/867746/

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