Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2349553
  • 博文数量: 527
  • 博客积分: 10343
  • 博客等级: 上将
  • 技术积分: 5565
  • 用 户 组: 普通用户
  • 注册时间: 2005-07-26 23:05
文章分类

全部博文(527)

文章存档

2014年(4)

2012年(13)

2011年(19)

2010年(91)

2009年(136)

2008年(142)

2007年(80)

2006年(29)

2005年(13)

我的朋友

分类: WINDOWS

2009-07-08 08:50:45

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) |
给主人留下些什么吧!~~