private static void set_text(ComboBox combox, string str)
{
// combox.SelectedIndex = -1;
combox.Text = str;
}
public static void RunSnippet()
{
Form f = new Form();
ComboBox combox = new ComboBox();
combox.DropDownStyle = ComboBoxStyle.DropDown;
combox.Items.Add("A");
combox.SelectedIndex = 0;
set_text(combox, "123");
f.Controls.Add(combox);
f.ShowDialog();
}
|
没有 把combox.SelectedIndex 先设置为-1, 仅设置Text 是不生效的. 虽然Form显示出来之后, 用户可以手工输入文字来设置 combox的Text, 但这与程序中设置不同, 用户交互式输入不会改变SelectedIndex , 虽然已经改变了它的文字. 注意此时ComboBox的 SelectedIndex 与相应Item的值是不一致的.
combox.SelectedIndex = -1;
会先触发 TextChanged事件, 然后才是 SelectedIndexChanged 事件.
但改变 Text 却并不会触发 SelectedIndexChanged
阅读(2101) | 评论(0) | 转发(0) |