|
| Autor |
Nachricht |
base_1001 Tutorial Leser

Anmeldedatum: 01.05.2008 Beiträge: 22
|
ListBox einzeln selektieren und ausgeben HILFE
Verfasst am: 06.07.2008, 15:45 |
|
|
Hallo Ich hab kein Plan, hab auch schon gegoogel, aber ich wusste eigentlich noch nichtmal wonach ich googlen soll, bin noch Anfänger, aber habe folgende Frage:
Ich habe zwei Listboxen. Ich lade eine Liste mit Vornamen und Nachnamen, und wenn ich auf Command Button klicke, dann sollen die Namen die ich selektiert habe, im Label angezeigt werden, wie krieg ich das hin? Das mit dem Öffnen usw, und in die Liste laden hab ich alles schon. Nur das mit dem selektieren, und bei Label ausgeben krieg ich nicht hin. Könnte jemand behilflich sein? Danke schonmal im voraus
Hier ein kleines Video, zur Veranschaulichung was ich meine:
http://rapidshare.com/files/127612489/new.rar
Mirror: http://ds7.fileflyer.com/d/9d30f267-3154-4...d7/HbP0/new.rar |
|
| |
|
 |
RedShark Poster

Anmeldedatum: 01.07.2008 Beiträge: 145
|
Antwort
Verfasst am: 06.07.2008, 16:36 |
|
|
Das ist im Grunde genommen nur ein einziger Befehl  Visual Basic: [code]Private Sub Command1_Click() Label1.Caption = List1.Text & " " & List2.Text End Sub[/code] |
|
| |
|
 |
base_1001 Tutorial Leser

Anmeldedatum: 01.05.2008 Beiträge: 22
|
Verfasst am: 06.07.2008, 16:52 |
|
|
Geil danke bist der beste, = D, ich hatte das vorher auch ungefähr so versucht, nur falsch xD Danke nochmal  |
|
| |
|
 |
RedShark Poster

Anmeldedatum: 01.07.2008 Beiträge: 145
|
Verfasst am: 06.07.2008, 16:52 |
|
|
Kein Problem ich helfe immer gerne  |
|
| |
|
 |
base_1001 Tutorial Leser

Anmeldedatum: 01.05.2008 Beiträge: 22
|
Verfasst am: 06.07.2008, 16:53 |
|
|
Ahja, wie kann man einstellen, dass man mehrere Sachen in einer Liste markieren kann? Ich kann nur einen Vornamen markieren :S
Edit: Habs gefunden Multiselect =)
Edit2: Aber dann wird immer noch nur ein Vorname angezeigt, ich würde das gerne so haben, das der Zweite Vorname dann in der nächsten Zeile beginnt |
|
| |
|
 |
RedShark Poster

Anmeldedatum: 01.07.2008 Beiträge: 145
|
Verfasst am: 06.07.2008, 18:11 |
|
|
Das Bearbeiten einer Listbox mit üblichen VB-Mitteln ist bei größerer Datenmenge oft eine zeitraubende Angelegenheit. Das nachfolgende Beispiel zeigt, wie eine Auswahl aus einer Listbox (Multiselect = 2) mittels der API-Funktion SendMessage zuerst in ein Array kopiert wird und dann z.B. in eine zweite Listbox übertragen wird.
Der Umweg über die For-Next-Schleife, in der jeder Eintrag der Listbox nach seiner Markierung abgefragt wird, entfällt somit.
Erstellen Sie ein neues Projekt, fügen Sie der Form zwei ListBoxen (List1 und List2), sowie einen CommandButton (cmdCopy) hinzu. Setzen Sie die MultiSelect-Eigenschaft der ersten ListBox (List1) auf den Wert 2 - Erweitert. Zunächst wird List1 mit beliebigen Werten gefüllt. Beim Klicken auf den CommandButton werden alle aktuell selektierten Einträge ermittelt und in die zweite ListBox kopiert. Visual Basic: [code] ' zunächst die benötigten API-Deklarationen 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() ' zunächst ListBox füllen Dim i As Integer For i = 1 To 100 List1.AddItem "Eintrag " & CStr(i) Next i End Sub
Private Sub cmdCopy_Click() ' alle selektierten Einträge der ListBox per API ' in ein Array kopieren Dim lCnt As Long Dim lResult As Long Dim lArr() As Long Dim i As Long ' Anzahl der ausgewälten Einträge bestimmen lCnt = SendMessage(List1.hwnd, LB_GETSELCOUNT, 0, 0) ' Arraygröße festlegen ReDim lArr(lCnt) ' hier wird das Array lArr() mit den Indizes von ' List1 gefüllt lResult = SendMessage(List1.hwnd, LB_GETSELITEMS, _ CLng(UBound(lArr)), lArr(0)) ' Übertragen der markierten Einträge anhand der ' Indizes im lArr() List2.Clear For i = 0 To UBound(lArr) - 1 List2.AddItem List1.List(lArr(i)) Next End Sub [/code]
Quelle: http://www.vbarchiv.de |
|
| |
|
 |
|
|