我有一个ComboBox
项目。我还有一个SelectedIndexChange
事件。
当我打开ComboBox
并将鼠标悬停在某个项目上时,SelectedIndex
属性似乎会更改为该项目。当我点击该项目时,我只想改变它。是否可以禁用该行为?
我有一个基于Image
的{{1}}刷新SelectedIndex
的计时器,但是,即使我突出显示一个项目但没有选择,为什么{{1}变更虽然它不应该改变,但它只应该在我选择一个项目时改变。
答案 0 :(得分:2)
问题
当鼠标移动到ComboBox
项时,SelectedIndex
更改但SelectedIndexChanged
事件不会触发,因此在您的计时器Tick
事件中,您会看到<{1}}不会触发时的更改。
重现问题的场景
要简单地重现问题,请在表单上放置SelectedIndexChanged
并启用它,然后处理其Timer
事件。同时添加Tick
并向其添加一些项目并处理其ComboBox
事件。当您打开下拉列表并将鼠标移到项目上时,您会看到SelectedIndexChanged
表单更改为光标下的项目索引,而Text
不会触发,SelectedIndexChanged
将显示。
MessageBox
针对您案例的解决方案
您只需使用private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
MessageBox.Show(this.comboBox1.SelectedIndex.ToString());
}
private void timer1_Tick(object sender, EventArgs e)
{
this.Text = this.comboBox1.SelectedIndex.ToString();
}
的{{3}}属性检查下拉列表是否未打开,然后执行此操作:
ComboBox