Announcement

Collapse
No announcement yet.

DataGridViewComboBoxColumn - Itemwahl funktioniert nicht

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • DataGridViewComboBoxColumn - Itemwahl funktioniert nicht

    Hallo,
    kämpfe mit dem DataGridView und darin eingebauten Comboboxen.
    Combobox Ansicht soll anders sein, als wenn man auf die Combobox klickt und dann Einträge wählen kann.
    (z.B Ansicht: a
    Klick auf Combobox - Eintrag: a - alpha
    b - beta)
    Dazu muss die Itemsliste beim Combobox DropDown geändert werden; und beim DropDownClosed wiederum das AnsichtsdataTable angebunden werden. (denke ich)

    Problem hierbei es würde theoretisch so funktionieren, jedoch kann ich jetzt keine Einträge mehr wählen.

    Jetzt habe ich zwar Eventhandler b. Combobox DropDown/DropDownClosed erstellt, und der Text in den Items ändert sich - jedoch kann ich keine Auswahl mehr treffen d.h. beim Klick auf ein anderes Item wird dieses nicht übernommen.

    Anbei der Code:
    Code:
    Private cboGrid As ComboBox
    Private mDTcboFormat As New DataTable("Format")
     
    'ComboBox Spalte im DataGrid wird erzeugt
    Private Sub DataGrid_ComboBoxSpalten_erstellen()
      Dim TBcol As New DataGridViewComboBoxColumn
      With TBcol     
         .ValueMember = mDTcboFormat.Columns("Format").ColumnName
         .DisplayMember = mDTcboFormat.Columns("FormatB").ColumnName
         .DataSource = mDTcboFormat                 ' DataTable an die Combobox 
         ' binden
      End With
            dg_mask.Columns.Add(TBcol)
    End Sub
     
    Private Sub createFeldFormat()
      Dim i As Integer
      Dim ItemsW() As String = {"a", "n", "d", " "}
      Dim ItemNameW() As String = {"a  - alpha", "d  - digit", "n - number", " "}
     
      mDTcboFormat.Columns.Add("Format", GetType(System.String))
      mDTcboFormat.Columns.Add("FormatB", GetType(System.String))
     
      For i = 1 To ItemsW.Count
         mDTcboFormat.Rows.Add(mDTcboFormat.NewRow)
         mDTcboFormat.Rows(i - 1)(0) = ItemsW(i - 1)
         mDTcboFormat.Rows(i - 1)(1) = ItemNameW(i - 1)
      Next
    End Sub
     
    Private Sub dg_mask_EditingControlShowing(....)
    Dim cmb As DataGridViewComboBoxEditingControl = CType(e.Control, _
      DataGridViewComboBoxEditingControl)
     
       RemoveHandler cmb.DropDownClosed, New EventHandler(AddressOf _
         ComboBox_DropDownClosed) 
       AddHandler cmb.DropDownClosed, New EventHandler(AddressOf _
       ComboBox_DropDownClosed)
     
       RemoveHandler cmb.DropDown, New EventHandler(AddressOf ComboBox_DropDown
       AddHandler cmb.DropDown, New EventHandler(AddressOf ComboBox_DropDown)
     
       If dg_mask.CurrentCellAddress.X = 6 Then     
          cboGrid = DirectCast(e.Control, ComboBox)
       End If
    End Sub
     
        'Erstellte Eventhändler f. Combobox
    Private Sub ComboBox_DropDown(ByVal sender As Object, ByVal e As _
      System.EventArgs)
           'Name des Feldes, dessen Wert in der Spalte/Zelle angezeigt wird.
       cboGrid.DisplayMember = mDTcboFormat.Columns("FormatB").ColumnName
    End Sub
     
    Private Sub ComboBox_DropDownClosed(ByVal sender As Object, ByVal e As _
      EventArgs)
         cboGrid.DisplayMember = mDTcboFormat.Columns("Format").ColumnName
    End Sub
    Warum kann ich jetzt keine Auswahl mehr treffen?
    Danke
Working...
X