DataGridView Zeile im sichtbaren Bereich anzeigen

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

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von adnanche.

    DataGridView Zeile im sichtbaren Bereich anzeigen

    Hallo,
    wenn ich auf einen Button drücke und Der Text der TextBox zur DataGridView übernommen wird, möchte ich anschließend das die eingefügte Zeile im Sichtbaren Bereich zu sehen ist. Ich denke ich muss eine Funktion schreiben mit FirstDisplayedCell, aber wie ich dies funktionsfähig mache weiß ich noch nicht. Vielleicht könnt ihr mir ja helfen :)
    LG
    Bilder
    • Untitledsdsaddadddddd.png

      18,1 kB, 762×392, 76 mal angesehen
    Vielleicht reicht ja schon ein DataGridView1.FirstDisplayedCell = DataGridView1.CurrentCell
    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.
    Ja schon, ganz zum Schluss der Einfügeprozedur.
    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.
    @adnanche dann hast Du noch einen gegenteiligen Befehl, wo CurrentCell verändert wird oder Du fügst die Zeile vorn ein.
    Das Snippet von @VaporiZed funktioniert.
    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!
    Wie fügst Du die Zeile denn ein? Oder überschreibst Du eine Zeile? Ah, sortiert nach Alphabet.

    VB.NET-Quellcode

    1. Private Sub BtnAdd_Click(sender As Object, e As EventArgs) Handles BtnAddName.Click
    2. If String.IsNullOrEmpty(TxtNameToAdd.Text) Then Exit Sub
    3. DgvNames.Rows.Add(TxtNameToAdd.Text)
    4. TxtNameToAdd.Clear()
    5. DgvNames.CurrentCell = DgvNames.Item(0, DgvNames.RowCount - 1)
    6. DgvNames.Sort(DgvNames.Columns(0), ComponentModel.ListSortDirection.Ascending)
    7. DgvNames.FirstDisplayedCell = DgvNames.CurrentCell
    8. End Sub
    Erst aktuelle Zeile merken, dann sortieren, dann FirstDisplayedCell setzen.
    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.
    Wie fügst Du die Zeile denn ein?

    Mit einer Datenbankabfrage:

    VB.NET-Quellcode

    1. Private Sub AddPath(ByVal path As String,
    2. ByVal directoryID As Integer)
    3. Dim DBCommand As New SqlCommand("", getConnection(ConnectionTypes.config))
    4. DBCommand.CommandType = CommandType.Text
    5. DBCommand.CommandText = _
    6. "INSERT " & _
    7. "INTO Directories_Main ( " & _
    8. " Path, " & _
    9. " DirectoryID " & _
    10. ") VALUES ( " & _
    11. " " & clsDatabase.AddParameterInput(DBCommand, "@Path", path, SqlDbType.VarChar, 100) & ", " & _
    12. " " & clsDatabase.AddParameterInput(DBCommand, "@DirectoryID", directoryID, SqlDbType.TinyInt) & ")"