最近做一个东西也是遇到了这个问题:ComboBox_SelectionChange事件里的ComboBox不是立即更新的,而是等事件函数执行后更新(个人观点,并不一定正确),Thread.Sleep(100)对此也无效,故有之前个人观点。
解决办法:
1.if (comboBox.Text != "")
{
comboBox.Text = comboBox.SelectedItem.ToString();
}
以上为我自己想的办法,发现过程:Debug的时候发现,ComboBox的SelectionItem这几个属性都变了,所以可以提前获取该信息,而不用等事件发生完毕。
2.参考别人的
http://www.oschina.net/code/snippet_146385_10226
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
///
<summary> ///
下拉框改变事件:获取下拉框中当前选择的文本 ///
</summary> ///
<param name="sender"></param> ///
<param name="e"></param> private
string
myComboBox_SelectionChanged( object
sender, SelectionChangedEventArgs e) { try { object
obj = ( object )e.AddedItems;
string
str= Convert.ToString(((System.Data.DataRowView)((( object [])(obj))[0])).Row.ItemArray[1]); return
str; } catch
(Exception) { throw ; } } |