在DataGridView中填充两个ComboBoxColumnColumn

时间:2019-01-14 21:15:35

标签: vb.net datagridview datatable datasource

我在ComboBoxColumns中有两个col_fon(第一个是col_mon,第二个是DataGridView)。但是,ComboBoxColumn中存在的第二个col_mon中只有一个ComboBoxColumnDataGridView)正在显示数据:

Private Sub Window_Load(sender As Object, e As EventArgs) Handles Me.Load

    col_fon.ValueMember = "Code"
    col_fon.DisplayMember = "Name"
    col_fon.DataSource = LoadComboFon()
    col_fon.SortMode = DataGridViewColumnSortMode.Automatic

    col_mon.ValueMember = "Code"
    col_mon.DisplayMember = "Name"
    col_mon.DataSource = LoadComboMon()
    col_mon.SortMode = DataGridViewColumnSortMode.Automatic

End Sub

ComboBoxColumn中出现的每个DatagridView都有其正确的DataSource,可以通过以下方法加载(col_mon,即ComboBoxColumn问题)使用与以下相同的方法:

Private Function LoadComboFon() As DataTable
    Dim dsParFon As New DataSet
    Dim dsFon As New DataSet
    Dim dtFon As New DataTable
    Dim Filter AS String
    Try
        Filter = "FONDO"
        dsParFon.Tables.Add("FONDOS")
        dsParFon.Tables("FONDOS").Columns.Add("FONDOS")
        dsParFon.Tables("FONDOS").Rows.Add(Filter)
        dsParFon.AcceptChanges()

        ' dsFon is loaded here with a method used by another classes

    Catch ex As Exception
        Throw
    End Try
    dtFon = dsFon.Tables(0)
    dtFon.Columns("CodeFon").ColumnName = "Code"
    Return dtFon

End Function

我尝试使用EditingControlShowingSelectedIndexChanged事件,但是第一个事件与DataGridView不起作用,另一个事件不能与那些列一起使用(因为它们属于DataGridView而是要创建并插入DataGridView

是否有另一种方法可以将DataSource加载到受影响的列中而又不会出现问题(以及功能ComboBoxColum)?预先感谢

1 个答案:

答案 0 :(得分:0)

问题终于出在ComboBoxColumn属性中,ReadOnly是在ReadOnly = True中设置的。我将其更改为False,现在它显示了所需的数据。