gpt4 book ai didi

c# - Combobox SelectedIndexChanged 在关闭 WinForm 时触发

转载 作者:行者123 更新时间:2023-11-30 13:27:16 28 4
gpt4 key购买 nike

我正在使用 Combobox SelectedIndexChanged 事件来执行一些任务。它工作得很好。但是当我关闭表单时,SelectedIndexChanged 被触发并且我得到“对象引用未设置到对象的实例”。异常(exception)。我的代码如下-

    private void cmbProductName_SelectedIndexChanged(object sender, EventArgs e)
{
try
{
Product p =(Product) cmbProductName.SelectedItem;

RawItems = RawItem.GetEntityList(p.Id, ConnectionString);

}
catch (Exception ex)
{
CustomMessageBox.ShowSystemException(ex);
}
}

如何避免在表单关闭时触发 SelectedIndexChanged 事件?

谢谢SK保罗。

最佳答案

如果您只想在用户更改组合框中的选定项时执行任务,最好实现 SelectionChangeCommitted事件

[编辑]

According to MSDN docs SelectionChangeCommitted occurs only when the ComboBox selection changes by user (via keyboard or mouse) and it is not raised when the selection changes programmatically.

当列表中的值发生变化时,首先触发 SelectionChangeCommitted 事件,然后触发 SelectedIndexChanged 事件。

因此,如果我们需要对 SelectedIndexChanged 执行任何操作,我们可以将其删除并在 SelectionChangeCommitted 事件处理程序中执行相同的操作。

简单地处理此事件,而不是如下所示的 SelectedIndexChanged:

private void cmbProductName_SelectionChangeCommitted(object sender, EventArgs e)
{
/*
Your event handling code
*/
}

关于c# - Combobox SelectedIndexChanged 在关闭 WinForm 时触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13249642/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com