gpt4 book ai didi

c# - 对多个 ControlCollection 进行 Foreach

转载 作者:太空狗 更新时间:2023-10-30 01:08:42 24 4
gpt4 key购买 nike

我的 Windows 窗体中有一个选项卡控件,我想循环访问两个不同选项卡中的每个元素。打开文件时,我希望启用两者的所有元素,而当文件关闭时,所有元素都将被禁用。

但是,我不知道如何完成此操作,因为控件不在数组或列表中,而是在 ControlsCollection 中。我刚才问过有关 foreach 语句的问题,并了解了一些有关 lambda 的知识,但我不知道如何在这里应用它。

这是我所拥有的:

List<Control.ControlCollection> panels = new List<Control.ControlCollection>();
panels.Add(superTabControlPanel1.Controls);
panels.Add(superTabControlPanel2.Controls);
foreach(Control.ControlCollection ctrlc in panels){
foreach (Control ctrl in ctrlc) {

}
}

这是否可以通过一个 foreach 语句实现,或者更简单一些?

最佳答案

我会使用 Linq,具有以下内容:

foreach (var ctrl in panels.SelectMany (x => x.Cast<Control> ())) {
// Work with the control.
}

关键是使用 Cast IEnumerable 上的扩展方法,使其可用于 SelectMany。

关于c# - 对多个 ControlCollection 进行 Foreach,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8696405/

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