最近做一个东西也是遇到了这个问题: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
;
}
}
|