|
Tipp 0169
|
ListBox-Einträge verschieben
|
|
|
Autor/Einsender: Datum: |
|
Michael Werner 16.09.2007 |
|
Entwicklungsumgebung: |
|
VB.Net 2005 |
Framework: |
|
2.0 |
|
|
Um markierte ListBox-Einträge nach oben oder unten zu verschieben, bedarf es
nur weniger Zeilen Code. Über SelectedIndex = -1 wird zunächst geprüft, ob
ein Eintrag markiert ist. Dann werden der ausgewählten Eintrag und sein Index
festgehalten und nach oben bzw. unten verschoben, indem der Index um 1 erhöht
oder vermindert wird und das Item-Objekt der ListBox.ObjectCollection neu zugewiesen wird.
|
|
|
''' <summary>
''' ItemMove(True/False)
''' Eintrag nach oben oder unten verschieben
''' </summary>
''' <param name="up"></param>
''' true = Eintrag nach oben verschieben
''' false= Eintrag nach unten verschieben
''' <remarks></remarks>
Sub ItemMove(ByVal up As Boolean)
With ListBox1
If .SelectedIndex = -1 Then
MessageBox.Show("Bitte zuerst einen Eintrag markieren!", _
"Markieren", MessageBoxButtons.OK, _
MessageBoxIcon.Information)
Exit Sub
End If
'Den ausgewählten Eintrag und seinen Index festhalten
Dim sItem As Object = .SelectedItem
Dim sIndex As Integer = .SelectedIndex
If up = False Then
If sIndex = 0 Then Exit Sub
'1 nach unten verschieben
.Items.Item(sIndex) = .Items.Item(sIndex - 1)
.Items.Item(sIndex - 1) = sItem
.SelectedIndex = sIndex - 1
Else
If sIndex = (.Items.Count - 1) Then Exit Sub
'1 nach oben verschieben
.Items.Item(sIndex) = .Items.Item(sIndex + 1)
.Items.Item(sIndex + 1) = sItem
.SelectedIndex = sIndex + 1
End If
End With
End Sub
|
|
|
|
|
Windows-Version |
98/SE |
|
|
ME |
|
|
NT |
|
|
2000 |
|
|
XP |
|
|
Vista |
|
|
Win
7 |
|
|
|
|
Download (17,6
kB)
|
Downloads bisher: [ 343 ]
|
|
|