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   RSS-Feeds  | Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2021
 
zurück

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

VB.NET - Ein- und Umsteiger
Listbox Item Focus geben 
Autor: Marty**
Datum: 09.10.21 13:21

Hallo,

ich versuche gerade Einträge aus meiner Listbox zu löschen.
Nach dem löschen, hat das Item leider nicht den Focus damit ich mehrmals hintereinander löschen kann.
Das ganze sieht so aus.

Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
ListBox1.Items.Add("1")
ListBox1.Items.Add("2")
ListBox1.Items.Add("3")
ListBox1.Items.Add("4")
ListBox1.Items.Add("5")
ListBox1.Items.Add("6")
ListBox1.Items.Add("7")
ListBox1.Items.Add("8")
ListBox1.Items.Add("9")
End Sub

Private Sub ListBox1_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles ListBox1.KeyDown
If e.KeyCode = Keys.Delete AndAlso ListBox1.SelectedItem <> Nothing Then
ListBox1.Items.RemoveAt(ListBox1.SelectedIndex)

End If
End Sub
End Class

Wie kann ich nach dem löschen gleich wieder den Item dem Focus geben ?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Listbox Item Focus geben 
Autor: minimalist
Datum: 09.10.21 17:11

Hi Marty,
versuche es mal mit:
Private Sub ListBox1_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles ListBox1.KeyDown
If e.KeyCode = Keys.Delete And Len(ListBox1.SelectedItem) > 0 Then
ListBox1.Items.RemoveAt(ListBox1.SelectedIndex)
ListBox1.SelectedIndex = 0
End If
End Sub
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Listbox Item Focus geben 
Autor: Kuno60
Datum: 09.10.21 19:33

Hallo, du kannst den Index des gelöschten Elements merken und dann wieder setzen.
  Private Sub ListBox1_KeyDown(sender As Object, e As KeyEventArgs) Handles _
    ListBox1.KeyDown
    If e.KeyCode = Keys.Delete AndAlso ListBox1.SelectedItem IsNot Nothing Then
      Dim i = ListBox1.SelectedIndex
      ListBox1.Items.RemoveAt(i)
      If i < ListBox1.Items.Count Then
        ListBox1.SelectedIndex = i
      End If
    End If
  End Sub

Grüße, Kuno
---------------
Hobbyprogrammierer
VB6 bis VB16

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Beispiel: Listbox mit Datenbindung - Items löschen 
Autor: Manfred X
Datum: 11.10.21 06:15

Hallo!

Am besten das Datenbindungs-Management nutzen.
Public Class frmKillListItem
 
    Dim TestItems As New List(Of Integer)           'Datenquelle
 
    Dim bsTest As New BindingSource                 'Management der Datenbindung
 
    Dim WithEvents lboTest As New ListBox With
        {.Parent = Me,
        .Width = 50, .Height = 300, .Left = 10,
        .DataSource = bsTest}                       'gebundenes Listbox-Control
 
 
    Private Sub frmKillListItem_Load(sender As Object, e As EventArgs) Handles _
      MyBase.Load
 
        Me.MinimumSize = New Size(100, 400)
        Me.Size = Me.MinimumSize
 
        'Einige Testitems in die Liste setzen
        For i As Integer = 0 To 9
            TestItems.Add(i + 10)
        Next i
 
        'Datenbindung herstellen
        bsTest.DataSource = TestItems
    End Sub
 
 
    Private Sub lboTest_KeyDown(sender As Object, e As KeyEventArgs) Handles _
      lboTest.KeyDown
 
        If e.KeyCode = Keys.Delete AndAlso lboTest.SelectedIndex >= 0 Then
            'Listenitem am gewählten Index aus der Liste (Datenquelle) löschen
            TestItems.RemoveAt(lboTest.SelectedIndex)
            'Datenbindung der Liste aktualisieren
            bsTest.ResetBindings(False)
        End If
    End Sub
End Class
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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-2021 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