Announcement

Collapse
No announcement yet.

Im Datagrid per tastendruck an position springen

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

  • Im Datagrid per tastendruck an position springen

    Hallo zusammen,

    weiß jemand, ob es möglich ist, dass wenn ich ein Datagrid mit Daten (zb. Adressdaten) gefüllt habe, ich durch drücken der "M"-Taste zum ersten Eintrag komme, dessen zb. Nachname mit "M" beginnt?

    Wenn ja, wäre das ein großer Aufwand und gibt es da Beispiele für?

    Danke,

    Andreas

  • #2
    Hallo Andreas!

    Im Prinzip ist das machbar und das auch ohne wirklich großen Aufwand.

    Müsstest nur beachten, dass du dich auf entweder alle Spalten oder eine einzige Spalte festlegen musst (musst sicher nicht, aber mir fällt gerade keine gute Durchzählung ein )

    Dann einfach alle Zeilen durchgehen im Keypress Ereigniss.

    Bsp:

    Code:
        Private Sub DataGridView1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles DataGridView1.KeyPress
    
        Dim j as Integer = 0 'Index der zu durchsuchenden Spalte
    
            DataGridView1.ClearSelection()
    
            For i As Integer = 0 To DataGridView1.Rows.Count - 1
                If DataGridView1.Item(j, i).Value.ToString.Trim.StartsWith(e.KeyChar) Then
    
                    DataGridView1.Item(1, i).Selected = True
                    Exit For
    
                End If
            Next
    
        End Sub
    Ein Problem hatte ich nur dabei, dass immer wenn man eine Taste drückt im Datagridview automatisch ein neuer Eintrag erstellt wurde. Aber vielleicht kann man dein Datagrid ja garnicht zur verändern?

    Hoffe dir geholfen zu haben. Ich habe selbst noch nicht viel mit Datagridview's gearbeitet und kenne die vielen Eigenschaften, Prozeduren und Funktionen nur sehr mangelhaft.

    Comment


    • #3
      Hallo Myst,

      danke für deinen Tip, werd es gleich mal ausprobieren.

      LG

      Andreas


      Edit:

      Funktioniert super.
      hab es ein wenig angepasst, da ich mit Datagrid und nicht DatagridView schaffen muss, aber das war kein Problem
      Code:
      Private Sub CC_DataGrid_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Me.KeyPress
              Dim j As Integer = 0 '## Index der zu durchsuchenden Spalte
      
              If Me.ReadOnly Then '## evtl auch noch auf den Kontext abfragen, aber ReadOnly sollte reichen.
      
                  For i As Integer = 0 To Me.Tabelle.Rows.Count - 1
                      If Me.Item(i, j).ToString.Trim.StartsWith(e.KeyChar) Or Me.Item(i, j).ToString.Trim.StartsWith(Char.ToUpper(e.KeyChar)) Then
      
                          Me.ResetSelection() '## bisherige Selektion entfernen
                          Me.Select(i) '## Ziel selektieren
                          Me.SetzeFocus(i, j) '## Focus auf das Ziel setzen 
                          Exit For
      
                      End If
                  Next
              End If
          End Sub
      Zuletzt editiert von Andreas Mahr; 25.08.2008, 08:58.

      Comment

      Working...
      X