gpt4 book ai didi

vb.net - DataGridComboBoxColumn 中的选择更改事件

转载 作者:行者123 更新时间:2023-12-05 08:16:38 24 4
gpt4 key购买 nike

我有一个带有 DatagridComboBoxColumn 的数据网格,我想在用户从 ComboBox 中选择任何东西时触发事件 SelectionChanged,执行一些操作,我该怎么做任何建议,谢谢

最佳答案

您可以处理 DataGridView 的 EditingControlShowing事件并将编辑控件转换到正在显示的 ComboBox,然后连接其 SelectionChangeCommitted 事件。使用 SelectionChangeCommitted 处理程序执行您需要执行的操作。

有关详细信息,请参阅我链接的 MSDN 文章中的示例代码。

两个重要提示:

  1. 尽管有 MSDN 文章的示例代码,但最好使用ComboBox SelectionChangeCommitted 事件,如前所述here并在链接的 MSDN 文章的评论。

  2. 如果您有多个 DatagridComboBoxColumnDataGridView 你可能想确定哪个触发了你的EditingControlShowing 或 ComboBox 的 SelectionChangeCommitted事件。您可以通过检查您的 DGV 来做到这一点CurrentCell.ColumnIndex 属性值。

我稍微修改了 MSDN 示例代码以表明我的意思:

Private Sub DataGridView1_EditingControlShowing(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewEditingControlShowingEventArgs) Handles DataGridView1.EditingControlShowing
' Only for a DatagridComboBoxColumn at ColumnIndex 1.
If DataGridView1.CurrentCell.ColumnIndex = 1 Then
Dim combo As ComboBox = CType(e.Control, ComboBox)
If (combo IsNot Nothing) Then
' Remove an existing event-handler, if present, to avoid
' adding multiple handlers when the editing control is reused.
RemoveHandler combo.SelectionChangeCommitted, New EventHandler(AddressOf ComboBox_SelectionChangeCommitted)

' Add the event handler.
AddHandler combo.SelectionChangeCommitted, New EventHandler(AddressOf ComboBox_SelectionChangeCommitted)
End If
End If
End Sub

Private Sub ComboBox_SelectionChangeCommitted(ByVal sender As System.Object, ByVal e As System.EventArgs)
Dim combo As ComboBox = CType(sender, ComboBox)
Console.WriteLine("Row: {0}, Value: {1}", DataGridView1.CurrentCell.RowIndex, combo.SelectedItem)
End Sub

关于vb.net - DataGridComboBoxColumn 中的选择更改事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9953006/

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