c# - 当我将值写入 ComboBox 时,SelectedIndexChanged 事件不会触发。当我从 comboBox.Items 列表中选择一个值时它会触发
问题描述
我有一个带有整数列表的 ComboBox 作为其数据源。该列表包含从 0 到 255 的整数。当我通过鼠标从下拉列表中选择一个值时,会触发该事件。另一方面,当我将一个值写入 ComboBox 时,该事件不会触发。在这两种情况下都不会触发事件 SelectionChangeCommitted。请我需要一个解释。先感谢您。
解决方案
您可以使用以下代码片段创建此事件:
public event IndexChangeHandler IndexChanged;
public delegate void IndexChangeHandler (object s);
private void button4_Click(object sender, EventArgs e)
{
Task.Run(() =>
{
int temp = 0;
while (true)
{
System.Threading.Thread.Sleep(2000);
comboBox1.BeginInvoke((MethodInvoker)delegate
{
if (comboBox1.Items.Count != temp)
{
IndexChanged(this);
temp= comboBox1.Items.Count;
}
});
}
});
IndexChanged += Form1_IndexChanged;
for (int i = 0; i < 5; i++)
{
comboBox1.Items.Add(i);
}
}
private void Form1_IndexChanged(object s)
{
MessageBox.Show("Test");
}
我在这个例子中定义了事件表单,你可以在一个单独的类中使用它。祝你好运
推荐阅读
- r - 选择具有最小绝对差异的重复行观察
- ecmascript-6 - WebGrease + ECMAScript6 + VIsual Studio 2019 => 无法缩小 JS 代码
- sql - 如果布尔值为真,如何将文本添加到另一个数据列?
- leaflet - 为什么保存的 html 文件中缺少传单地图上的 grobs,但在 Rstudio 浏览器中可以正常打印?
- openshift - 为 Openshift 路由配置多个路径
- amazon-web-services - If else 条件云的形成
- python - Python 中的 {} 未按预期计算
- python - 'try.....except' 的问题会引发 ROOT 文件的语法错误
- excel - 如何忽略或处理 Excel 函数中的空白单元格?
- c# - System.Data.SqlClient.SqlException (0x80131904):执行超时已过期,错误号:-2