![]() |
|
Tipp 0408
|
Listeneinträge löschen (API)
|
 |
|
Autor/Einsender: Datum: |
|
Angie 13.08.2004 |
|
| Entwicklungsumgebung: |
|
VB 6 |
|
|
|
Wenn mit VB-Mitteln aus einem Listenfeld markierte
Listeneinträge gelöscht werden sollen, dann muss
vorher mit der Selected-Eigenschaft überprüft werden, ob ein Element ausgewählt ist.
|
|
Im Gegensatz dazu, werden in diesem Beispiel zunächst die Indices der markierten Elemente
mit Hilfe der API-Funktion SendMessage in ein Datenfeld kopiert und anschließend
die Elemente gelöscht.
|
|
| |
Option Explicit
Private Declare Function SendMessage Lib "user32" Alias _
"SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, _
ByVal wParam As Long, lParam As Any) As Long
Private Const LB_GETSELCOUNT = &H190
Private Const LB_GETSELITEMS = &H191
Private Sub Form_Load()
Dim n As Integer
For n = 1 To 100
List1.AddItem "Eintrag " & CStr(n)
Next
End Sub
Private Sub cmdDelete_Click()
Dim nSelCount As Long
Dim aIndexes() As Long
Dim n As Long
With List1
nSelCount = SendMessage(.hwnd, LB_GETSELCOUNT, 0, 0)
If nSelCount > 0 Then
ReDim aIndexes(nSelCount - 1)
SendMessage .hwnd, LB_GETSELITEMS, nSelCount, aIndexes(0)
For n = UBound(aIndexes) To 0 Step -1
.RemoveItem aIndexes(n)
Next
Erase aIndexes()
Else
MsgBox "Es sind keine Einträge zum Löschen markiert!", _
vbOKOnly, Title:="VB-fun-Demo"
End If
End With
End Sub
|
|
|
|
|
|
|
| Windows-Version |
| 95 |
 |
|
| 98/SE |
 |
|
| ME |
 |
|
| NT |
 |
|
| 2000 |
 |
|
| XP |
 |
|
| Vista |
 |
|
| Win
7 |
 |
|
|
| VB-Version |
| VBA 5 |
 |
|
| VBA 6 |
 |
|
| VB 4/16 |
 |
|
| VB 4/32 |
 |
|
| VB 5 |
 |
|
| VB 6 |
 |
|
|
|
Download (3 kB)
|
Downloads bisher: [ 474 ]
|
|
|