Combobox单元格值数据源datagridview

时间:2013-10-30 18:01:56

标签: c# datagridview

enter image description here

在图片下方,我将Reason作为组合框,有三个选项。 在选择第一个值如内部返工,第二列责任方是 还应该使用列表集合填充组合框,以便选择 来自Reason组合框的另一个值应该填充负责方 另一个清单集。

由于我尝试结束gridview的编辑并且它正在显示值,但如果在下一行我更改了我的返工组合框值,则责任方的先前值不会保留其值。

那么我怎样才能防止这种情况发生。

所以感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

您是否尝试根据原因中选择的值绑定其他两个组合框?如果是这样,我将在数据网格事件中使用CellValueChanged事件,您可以以编程方式构建列表并对其进行数据绑定。如果这是你想要做的,我将在这里发布一个例子,如果没有请澄清,以便我可以提供帮助。

Private Sub dgVendors_CellValueChanged(sender As System.Object, e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgVendors.CellValueChanged

        If dgVendors.Columns(e.ColumnIndex).HeaderText = "Reason" Then

            CType(dgVendors.Rows(e.RowIndex).Cells(""), DataGridViewComboBoxCell).DataSource = Nothing
            CType(dgVendors.Rows(e.RowIndex).Cells(""), DataGridViewComboBoxCell).DisplayMember = ""
            CType(dgVendors.Rows(e.RowIndex).Cells(""), DataGridViewComboBoxCell).ValueMember = ""

        ElseIf dgVendors.Columns(e.ColumnIndex).HeaderText = "Responsible Party" Then

            CType(dgVendors.Rows(e.RowIndex).Cells(""), DataGridViewComboBoxCell).DataSource = Nothing
            CType(dgVendors.Rows(e.RowIndex).Cells(""), DataGridViewComboBoxCell).DisplayMember = ""
            CType(dgVendors.Rows(e.RowIndex).Cells(""), DataGridViewComboBoxCell).ValueMember = ""

        End If

End Sub

答案 1 :(得分:0)

如果您想处理下拉列表的选择更改事件,可以handle the EditingControlShowing event of the DataGridView

还有an MSDN page可能会帮助你。 此外,请务必更改DataSourceDataGridViewComboBoxCell的{​​{1}},而不是CurrentRow。{/ p>