gpt4 book ai didi

c# - SelectedIndexChanged 事件多次触发

转载 作者:太空宇宙 更新时间:2023-11-03 13:48:03 32 4
gpt4 key购买 nike

当用户更改我的网格中 DataGridViewComboBoxColumn 的值时,我需要执行一个操作。假设我必须显示一条消息。

问题是 messagebox.show("hello") 代码执行了数百万次。

这是我的代码。

grilla.EditingControlShowing+=new DataGridViewEditingControlShowingEventHandler(grilla_EditingControlShowing);

void grilla_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
if (e.Control is ComboBox) //i have only one combobox column.
{
ComboBox cb = (ComboBox)e.Control;
// first remove event handler to keep from attaching multiple:
cb.SelectedIndexChanged -= new EventHandler(cb_SelectedIndexChanged);

// now attach the event handler
cb.SelectedIndexChanged += new EventHandler(cb_SelectedIndexChanged);
}

}

void cb_SelectedIndexChanged(object sender, EventArgs e)
{
MessageBox.Show("hello");
}

最佳答案

最后你找到了一个完全符合我要求的代码:

grid.CurrentCellDirtyStateChanged += (s, e) => 
{
if (grid.IsCurrentCellDirty)
{
grid.CommitEdit(DataGridViewDataErrorContexts.Commit);

MessageBox.Show("hello");
}
};

更改组合框单元格的值后,消息仅显示一次。

关于c# - SelectedIndexChanged 事件多次触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14608491/

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