Rubrik: TextBox, ListBox & ComboBox | 01.07.08 |
Einträge an einer bestimmten Stelle einer Listbox hinzufügen (VB.NET) VB-Version: VB.NET | ||
Views: 15.780 |
Standardmäßig werden Einträge einer Listbox immer am Ende hinzugefügt. Da man die Position der Einträge über den Index bestimmen kann, kann man mit der Methode Insert() dem User die Möglichkeit geben, einen neuen Eintrag an einer bestimmten Stelle zu positionieren. Um das auszuprobieren, benötigen wir in unserem Projekt eine Listbox (ListBox1), eine Textbox (TextBox1), einen Button (btnEinfuegen) und drei RadioButtons (rbAnfang, rbVor, rbNach) sowie den folgenden Code:
Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles MyBase.Load ' Listbox füllen For i = 1 To 10 ListBox1.Items.Add("Eintrag " & CStr(i)) Next End Sub Private Sub btnEinfuegen_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles btnEinfuegen.Click ' überprüfen ob Textbox leer ist. Falls ja, Sub verlassen If TextBox1.Text = "" Then Exit Sub ' überprüfen welcher RadioButton angeklickt ist und ' entsprechend reagieren If rbAnfang.Checked Then ' wenn angeklickt, Eintrag am Anfang einsetzen ListBox1.Items.Insert(0, TextBox1.Text) ElseIf rbVor.Checked And ListBox1.SelectedIndex <> -1 Then ' wenn angeklickt, Eintrag vor dem ausgewählten Eintrag einsetzen ListBox1.Items.Insert(ListBox1.SelectedIndex, TextBox1.Text) ElseIf rbNach.Checked And ListBox1.SelectedIndex <> -1 Then ' wenn angeklickt, Eintrag nach dem ausgewählten Eintrag einsetzen ListBox1.Items.Insert(ListBox1.SelectedIndex + 1, TextBox1.Text) Else ' wenn nichts angeklickt ist, Eintrag am Ende der Liste einsetzen ListBox1.Items.Add(TextBox1.Text) End If ' Textbox wieder leeren TextBox1.Text = "" End Sub End Class