Visual Basic Forum

Visual Basic Forum
für VB6 und VB.NET Programmierer
 
RegistrierenRegistrieren  LoginLogin
Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> [VB6] Fragen - Antworten
Autor
Nachricht
base_1001
Tutorial Leser
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
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 Smile
Visual Basic: [code]Private Sub Command1_Click()
Label1.Caption = List1.Text & " " & List2.Text
End Sub[/code]
 
base_1001
Tutorial Leser
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 Very Happy
 
RedShark
Poster
Poster

Anmeldedatum: 01.07.2008
Beiträge: 145


Verfasst am: 06.07.2008, 16:52

Kein Problem ich helfe immer gerne Very Happy
 
base_1001
Tutorial Leser
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
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
 
Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> [VB6] Fragen - Antworten

Tags: label ausgeben, listbox, selektieren

 
 Verwandte Themen   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Wichtig: [Video] Funktionen 3331 18.05.2012, 08:31
Keine neuen Beiträge Wichtig: [Video] Lesson 2 - If then Else, For Schleife 3081 14.02.2008, 07:21
Keine neuen Beiträge [Video] Chat Flooder 4674 07.04.2008, 18:12
Keine neuen Beiträge [Video] *.dll & *.ocx Installer 2612 06.03.2008, 21:19
 


[ Time: 0.2396s ][ Queries: 93 (0.1506s) ][ GZIP on - Debug on ]