tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
3
ZUGRIFFE
1169
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Maggo13 Maggo13 ist offline Mitglied
    Registriert seit
    Aug 2009
    Beiträge
    14
    Hy,

    habe ein kleines Problem. Ich habe ein Datagridview und diesem ein contextmenustrip zugeordnet.

    Nur wenn wenn das Kontextmenü aufrufe, erkennt es nicht die row des datagridviews. Es nimmt immer den ersten Eintrag (Index), auch wenn ich mit rechts auf den zweiten geklickt habe um das Kontextmenü aufzurufen.

    Wie bekomme ich es geregelt, das das Kontextmenü auch die row des angeglickten Eintrags des datagridviews erkennt?

    Jemand eine idee?

    Gruß
    Marco
     

  2. #2
    Maggo13 Maggo13 ist offline Mitglied
    Registriert seit
    Aug 2009
    Beiträge
    14
    Habe eine Lösung gefunden:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
        Private Sub DGVTermine_CellMouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellMouseEventArgs) Handles DGVTermine.CellMouseMove
            With DGVTermine
                .CurrentRow.Selected = False
                '.CurrentCell.Selected = False
                '.Rows(e.RowIndex).Cells(e.ColumnIndex).Selected = True
                .Rows(e.RowIndex).Selected = True
                .CurrentCell = .SelectedCells(0)
            End With
        End Sub

    Da ich auf die ganze Row gehe sind die Teile mit den Cells ausdokumentiert...

    Gruß
    Maggo13
     

  3. #3
    freakbrother freakbrother ist offline Mitglied Bronze
    Registriert seit
    May 2007
    Ort
    Ostmanien
    Beiträge
    33
    Wie bekomme ich es geregelt, das das Kontextmenü auch die row des angeglickten Eintrags des datagridviews erkennt?
    Wieso eigentlich mit Mousemove?

    Wenn du das Ereignis: CellClick des DataGridView implementierst und du das Event Object abfragst, bekommst du sowohl den RowIdex als auch den ColumnIndex geliefert.
    Also e.RowIndex bzw. e.ColumnIndex
     

  4. #4
    Maggo13 Maggo13 ist offline Mitglied
    Registriert seit
    Aug 2009
    Beiträge
    14
    Wieso Mousemove? Weil ich die Rows farblich ändere, bei drüberfahren. Es muss folglich ständig geprüft werden, wo die Maus steht.

    Hier der neue Code:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    
        Private Sub DGVTermine_CellMouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellMouseEventArgs) Handles DGVTermine.CellMouseMove
            Debug.Print(e.RowIndex.ToString)
            With DGVTermine
                .Rows(e.RowIndex).Selected = True
                .CurrentCell = .Item(3, e.RowIndex)
            End With
        End Sub
     
        Private Sub DGVTermine_MouseHover(ByVal sender As Object, ByVal e As System.EventArgs) Handles DGVTermine.MouseHover
            altfarbe = Me.DGVTermine.RowsDefaultCellStyle.SelectionBackColor
            Me.DGVTermine.RowsDefaultCellStyle.SelectionBackColor = FromArgb(251, 230, 148)
        End Sub
     
        Private Sub DGVTermine_MouseLeave(ByVal sender As Object, ByVal e As System.EventArgs) Handles DGVTermine.MouseLeave
            Me.DGVTermine.RowsDefaultCellStyle.SelectionBackColor = altfarbe
        End Sub

    Gruß
    Marco
     

Ähnliche Themen

  1. Tiny MCE - Contextmenu
    Von yeronimo im Forum Javascript & Ajax
    Antworten: 6
    Letzter Beitrag: 01.12.09, 13:13
  2. was bedeutet "currentRow.RowState != DataRowState.Deleted"?
    Von hemax im Forum .NET Datenverwaltung
    Antworten: 3
    Letzter Beitrag: 08.04.08, 17:46
  3. ContextMenu und Ausklappmenü?!
    Von heino-th im Forum Flash Plattform
    Antworten: 7
    Letzter Beitrag: 15.10.05, 18:55
  4. Shortcut von ContextMenu
    Von Nikon the Third im Forum .NET Archiv
    Antworten: 2
    Letzter Beitrag: 19.11.04, 21:40
  5. Contextmenu nur in Listbox?
    Von CoolPeter im Forum .NET Archiv
    Antworten: 1
    Letzter Beitrag: 17.02.04, 05:50