vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Brandneu! sevEingabe v3.0 - Das Eingabecontrol der Superlative!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Fortgeschrittene
Re: Einzelne Zelle eines DataGridView in ComboBox umwandeln 
Autor: mlootz
Datum: 17.09.14 15:16

Ursache gefunden:

Es liegt am Ereignis Handler: Es funktioniert fehlerfrei beim CellClick Event, nicht jedoch beim CellEnter, CellLeave oder CellValidated.

Hier ein Beispiel bei einem DGV mit 8 Spalten (Spalte1 - Spalte8):

Public Class Form1
    Private sp As Integer = 0
    Private ze As Integer = 0
    Private cell_wechsel As Boolean = False
 
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles MyBase.Load
        For i = 0 To 10
            DataGridView1.Rows.Add("Yes", "Yes", "Yes", "Yes", "Yes", "Yes", _
              "Yes", "Yes")
        Next
    End Sub
 
    Private Sub DataGridView1_CellClick(ByVal sender As System.Object, ByVal e _
      As System.Windows.Forms.DataGridViewCellEventArgs) Handles _
      DataGridView1.CellClick
        If DataGridView1.Rows(e.RowIndex).Cells(e.ColumnIndex).GetType.ToString _
        = "System.Windows.Forms.DataGridViewComboBoxCell" Then
            Exit Sub
        End If
        If cell_wechsel = True Then
            Dim TxtCell As New DataGridViewTextBoxCell
            Dim merk As String = DataGridView1.Rows(ze).Cells(sp).Value
            DataGridView1.Rows(ze).Cells(sp) = TxtCell
            DataGridView1.Rows(ze).Cells(sp).Value = merk
            cell_wechsel = False
        End If
        'Debug.Print(DataGridView1.Rows(e.RowIndex).Cells( 
        ' e.ColumnIndex).GetType.ToString)
        Dim CboCell As New DataGridViewComboBoxCell
        CboCell.Items.Clear()
        CboCell.Items.Add("Yes")
        CboCell.Items.Add("No")
        CboCell.Items.Add("None")
        'Debug.Print("Zeile " & e.RowIndex & "         Spalte " & e.ColumnIndex)
        If e.RowIndex = 0 And e.ColumnIndex = 0 Then
        Else
            Dim r As Int32 = e.RowIndex
            Dim c As Int32 = e.ColumnIndex
            DataGridView1.Rows(e.RowIndex).Cells(e.ColumnIndex).ReadOnly = True
            Dim merk As String = DataGridView1.Rows(e.RowIndex).Cells( _
              e.ColumnIndex).Value
            DataGridView1.Rows(e.RowIndex).Cells(e.ColumnIndex) = CboCell
            DataGridView1.Rows(e.RowIndex).Cells(e.ColumnIndex).ReadOnly = False
            DataGridView1.Rows(e.RowIndex).Cells(e.ColumnIndex).Value = merk
        End If
    End Sub
 
    Private Sub DataGridView1_CellLeave(ByVal sender As System.Object, ByVal e _
      As System.Windows.Forms.DataGridViewCellEventArgs) Handles _
      DataGridView1.CellLeave
        If DataGridView1.Rows(e.RowIndex).Cells(e.ColumnIndex).GetType.ToString _
        = "System.Windows.Forms.DataGridViewTextBoxCell" Then
            Exit Sub
        End If
        ze = e.RowIndex
        sp = e.ColumnIndex
        cell_wechsel = True
    End Sub
End Class
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Einzelne Zelle eines DataGridView in ComboBox umwandeln3.642mlootz16.09.14 10:21
Re: Einzelne Zelle eines DataGridView in ComboBox umwandeln1.913mlootz16.09.14 14:27
Re: Einzelne Zelle eines DataGridView in ComboBox umwandeln1.956mlootz17.09.14 15:16

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel