winforms 如何像一个简单的组合框,但datagridviewCombobox(VB.net)的SelectdValue

oug3syen  于 2023-06-24  发布在  .NET
关注(0)|答案(1)|浏览(130)

如何获得SelectdValue像一个简单的组合框,但datagridviewCombobox使用行索引(dataGridView已满)(VB.net)
我尝试了一个代码,这工作很好,但我不知道如何使用它在按钮点击事件的代码:

Private Sub dgvSampleList_EditingControlShowing(ByVal sender As Object, ByVal e As DataGridViewEditingControlShowingEventArgs) Handles dgvSampleList.EditingControlShowing
    Dim comboBox As ComboBox = CType(e.Control, ComboBox)

    If (comboBox IsNot Nothing) Then
        'Remove an existing event-handler
        RemoveHandler comboBox.SelectedIndexChanged, New EventHandler(AddressOf ComboBox_SelectedIndexChanged)

        'Add the event handler. 
        AddHandler comboBox.SelectedIndexChanged, New EventHandler(AddressOf ComboBox_SelectedIndexChanged)
    End If
End Sub

Private Sub ComboBox_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs)
    Dim comboBox As ComboBox = CType(sender, ComboBox)
    'Display selected value
    MsgBox("ProgramID: " & comboBox.SelectedValue.ToString)
End Sub

this ComboBox从数据库获取信息代码:

fill.filldata_cb("fillDataProduct", Product_Name)
Product_Name.DisplayMember = "Product"
Product_Name.ValueMember = "ID"

DataGridViewComboBox命名为Product_Name,我从数据库中获取数据,使用SQL Server的存储过程和函数读取存储过程并给予所需的参数。我只是想获取与DataGridViewComboBox中所选项目相关的值成员

lskq00tm

lskq00tm1#

开始编辑组合框列中的单元格时,单元格的Value将指定给编辑控件的SelectedValue,并设置SelectedItem。当编辑会话结束时,编辑控件的SelectedValue被分配回单元格的Value。在您的案例中没有编辑控件,因此没有SelectedValue可供获取。你只需要得到单元格的Value,就像任何其他单元格一样。
在大多数情况下,组合框列将绑定到数据库表中的数据,其中有一个ID和一个文本名称或描述。如果此数据绑定到标准ComboBox控件,则ID列的名称将分配给列的'ValueMember and the name of the text column would be assigned to the DisplayMember . You generally do the same with a DataGridViewComboBoxColumn . The DataSource , DisplayMember and ValueMember',然后传播到每个单元格,然后传播到嵌入在这些单元格中的任何编辑控件。
如果使用离散控件编辑相关表的列,则需要将该数据的相应列绑定到ComboBoxSelectedValue。当您选择一条记录时,该列的值将被分配给SelectedValue,从而设置SelectedItem,用户所做的任何更改都将更改SelectedValue,并将其分配回子表的列。这就是DataGridViewComboBoxColumn的工作原理。该子表中的数据存储在网格单元格的Value属性中,因此您感兴趣的值就存储在这里。

相关问题