我对Windows窗体有一个奇怪的问题,我不知道如何解决。
问题是,我想动态创建一个其中包含某些组件的GroupBox,尤其是使用ComboBox。它正在工作,但是当我想设置ComboBox的SelectedIndex时,抛出ArgumentOutOfRange。我已使用Datasource属性将选项设置为ComboBox。我已经发现,如果我首先设置GroupBox的父级,但只有将其设置为Form时,该问题才能解决。
总而言之,ComboBox不能在没有视觉外观之前设置SelectedIndex
public partial class Form1 : Form
{
enum Example
{
One,
Two,
Three
}
ComboBox cb;
GroupBox gb;
public Form1()
{
InitializeComponent();
gb = new GroupBox()
{
//Parent = this,
Text = "Try",
AutoSize = true,
AutoSizeMode = AutoSizeMode.GrowOnly
};
}
private void Form1_Load(object sender, EventArgs e)
{
cb = new ComboBox()
{
Parent = gb,
Top = 15,
Left = 5,
DataSource = Enum.GetValues(typeof(Example)),
SelectedIndex = 1
};
}
}
我已经编写了具有相同问题的示例代码。如果我在创建GroupBox时注释掉Parent = this,则会引发异常,但是如果我将其重新插入代码中,它将正常工作。
如何在ComboBox SelectedIndex出现之前设置它?预先感谢!