Datagridview Change Combobox index

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von VaporiZed.

    Datagridview Change Combobox index

    Moin, ich finde die Funktion in Google einfach nicht, ich möchte Per Button den Index der Combobox ändern.

    Normal geht es ja so:

    VB.NET-Quellcode

    1. Combobox1.selctedindex = 1

    Nur benötige ich es für das Datagridview.

    EDIT: hab nun das Gefunden. Funktioniert zwar aber mit Fehlermeldung vom DGV

    VB.NET-Quellcode

    1. ​ DataGridView1.Rows(1).Cells(4).Value = 2


    Weiß jemand evtl weiter?

    Danke im vorraus

    xX-Nick-Xx schrieb:

    aber mit Fehlermeldung vom DGV
    Welche?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Ohne DataBinding muss man wohl mit Strings arbeiten. Also den Beschriftungen, die in der ComboBox aufgelistet sind. Stehen in der ComboBox Zahlen, muss man als Value diese als String angeben. Wenn also in den ComboBoxen steht: 1, 2, 3, dann

    VB.NET-Quellcode

    1. DataGridView1.Rows(1).Cells(4).Value = "2"

    oder

    VB.NET-Quellcode

    1. DataGridView1.Item(4, 1).Value = "2"


    ##########

    Dementsprechend wäre das hier ein Ansatz:

    VB.NET-Quellcode

    1. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    2. SetSelectedIndexForCell(2, 1, 2)
    3. End Sub
    4. Private Sub SetSelectedIndexForCell(RowIndex As Integer, ColumnIndex As Integer, DesiredIndex As Integer)
    5. DataGridView1.Item(RowIndex , ColumnIndex).Value = Column2.Items.Cast(Of String).ToArray(DesiredIndex)
    6. End Sub


    ##########

    Eine Stufe weiter:

    VB.NET-Quellcode

    1. Public Module Ex
    2. <Runtime.CompilerServices.Extension>
    3. Public Sub SetSelectedIndex(Cell As DataGridViewCell, DesiredIndex As Integer)
    4. If TypeOf Cell IsNot DataGridViewComboBoxCell Then Exit Sub
    5. Dim CbxCell = DirectCast(Cell, DataGridViewComboBoxCell)
    6. If CbxCell.Items Is Nothing Then Exit Sub
    7. Dim ItemsList = CbxCell.Items.Cast(Of String)
    8. If ItemsList.Count <= DesiredIndex Then Exit Sub
    9. Cell.Value = ItemsList.ToArray(DesiredIndex)
    10. End Sub
    11. End Module

    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „VaporiZed“ ()