我这里有一个问题,当我在编码中创建一个组合框时,我发现我无法在与数据源绑定后立即设置 selectedValue。下面的编码用于帮助我解释问题。
我想我已经找到了问题,问题可能是由于同步引起的。这意味着这行代码(comboBox1.SelectedIndex = 2)将在组合框数据源正确绑定之前执行,因此组合框在执行comboBox1.SelectedIndex = 2时找不到数据并产生错误。如果我错了,请纠正我。
我的解决方案是在 comboBox1.DataSource = data 之后立即放置一个 while 循环,以确保组合框在进入下一行代码之前正确绑定。我确信这不是一个好方法。
还有其他更好的解决方案吗?提前致谢。
public partial class Form2 : Form
{
private ComboBox comboBox1 = new ComboBox();
public Form2()
{
InitializeComponent();
string[] data = { "a", "b", "c" };
comboBox1.DataSource = data;
//This line of code is used to confirm the data source
//is bind to the combo box
while (comboBox1.DataSource == null) ;
comboBox1.SelectedIndexChanged += comboBox1_SelectedIndexChanged;
this.Controls.Add(comboBox1);
comboBox1.SelectedIndex = 2;
}
void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
MessageBox.Show("");
}
}