【发布时间】:2012-05-15 03:53:38
【问题描述】:
我有一个包含 16 个组合框的表单,每个组合框的 DropDownStyle 属性设置为 DropDownList。我正在尝试设置表单,以便每个控件显示其第一个预定义值:
private void Form1_Load(object sender, EventArgs e)
{
foreach (ComboBox DropDown in this.Controls.OfType<ComboBox>())
DropDown.SelectedIndex = 0;
}
此代码不起作用,尽管单独分配每个项目可以。任何想法为什么?
【问题讨论】:
-
这很有趣。您确定
this.Controls.OfType<ComboBox>实际上返回组合框列表吗?尝试调试它 - 事实上,您是否获得了您期望的 16 个控件? -
现在想想,其实这不是可以在设计时设置的吗?为什么需要在
Form_Load中设置? -
@AvnerShahar-Kashtan 似乎不是,我不知道为什么......(我对 C# 的经验并不过分。)“枚举没有结果”是我的消息见。
-
尝试使用 Catch/Try 块包装代码。
-
好的,这是一个开始。我的 WinForm 有点生疏,但如果我没记错的话,
this.Controls只会在主窗体下直接为您带来那些控件。如果您有任何子控件,例如 Groupbox,它们将位于该 groupbox 的.Controls下。我看到一些 SO 帖子似乎建议使用递归来获取所有子控件:stackoverflow.com/questions/3419159/…
标签: c# winforms combobox drop-down-menu oftype