Aus Listbox Selectieren zu externer Form

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von DavidRacer.

    Aus Listbox Selectieren zu externer Form

    Hallo,

    Ich habe eine Frage bezüglich des Selectieren von verschiedene Elemente von Listboxen.

    Hier mal ein beispiel:

    (Form2)



    Ich möchte Test1 auswählen und dann "Select" drücken um auf einer Externen Form (Form1) dieses dann bei einer Combobox angezeigt bekomme (hier: )
    Wie funktioniert das? Das selectieren ist einfach, das könnte man ja eventuell mit Select Case machen:


    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Select Case ListBox1.Text
    Case "Test1"
    Combobox1.Text = "Test1"
    Case "Test2"
    ...

    Das würde aber nicht gehen, da die Combobox1 auf Form1 ist und die Listbox1 auf Form2. Wie überbrücke ich das?

    Danke im vorraus!

    PS: Achja, wenns ein schnelleren Weg geben würde um jedes einzellne Element zu "Select Casen" sagt ihr mir bitte bescheid ;)
    Hey,

    deklariere in Deiner Form2 ein eigenes Event. Ein kurzes Beispiel.

    VB.NET-Quellcode

    1. Public Class Form2
    2. Public Event ListBoxSelectionChanged(ByVal item As String)
    3. Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    4. RaiseEvent ListBoxSelectionChanged(Me.ListBox1.SelectedItem.ToString())
    5. End Sub
    6. End Class


    In Form1 machst Du dann Folgendes:

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private WithEvents _f2 As New Form2
    3. Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    4. _f2.Show()
    5. End Sub
    6. Private Sub _f2_ListBoxSelectionChanged(item As String) Handles _f2.ListBoxSelectionChanged
    7. Me.ComboBox1.Items.Add(item)
    8. End Sub
    9. End Class


    Thats it im Grossen und Ganzen. Musst natürlich Deinen Bedürfnissen anpassen.
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o
    Bist du sicher?

    Ich habe mal

    SpaceyX schrieb:

    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    _f2.Show()
    End Sub
    weggelassen weil ich die Form1 nicht am anfang brauche.

    Dennoch passiert bei mir garnichts wenn ich "Select" drücke (und ein Element ausgewählt habe).

    Sonst sollte alles richtig eingestellt sein, kannst du dein code bitte überprüfen?
    Ja, bin mir sicher...

    Pass hier auf, in meinem Beispiel wird in die ComboBox von Form1 Items.Add() aufgerufen, also musst mal kurz in die DropDownList guggn.

    Zeig mal, was Du hast.
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o
    EDIT: Jetzt weiß ich wieso.. da ich

    "Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load_f2.Show()
    End Sub"


    Weggelassen habe funktionierte es nicht.


    Ich möchte aber das die Form1 nicht am anfang geladen wird. Sondern wenn die Form1 aufgerufen wird (von einem anderen Button der jetz keine Rolle spielt) das es dann auch funktioniert.
    d.h

    Auf form1 befindet sich:




    Die Combobox
    +
    Button 2 für das öffnen der Form2. =


    Auf Form 2 befindet sich:




    Button 1 für das Selectieren der Elemente der Listbox
    +
    Listbox1 mit den Elementen.

    (der Close button ist unwichtig)

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „DavidRacer“ ()

    Schau mal im Anhang, da ist das Projekt.

    Wenns immer noch nicht klappt, kannst mir ja PN schreiben, dann gugg ma mal.

    EDIT:

    Auch kein Problem:

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private WithEvents _f2 As Form2
    3. Private Sub _f2_FormClosing(sender As Object, e As System.Windows.Forms.FormClosingEventArgs) Handles _f2.FormClosing
    4. _f2 = Nothing
    5. End Sub
    6. Private Sub _f2_ListBoxSelectionChanged(item As String) Handles _f2.ListBoxSelectionChanged
    7. Me.ComboBox1.Items.Add(item)
    8. End Sub
    9. Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
    10. If IsNothing(_f2) Then
    11. _f2 = New Form2
    12. _f2.Show()
    13. Else
    14. _f2.Show()
    15. End If
    16. End Sub
    17. End Class
    Dateien
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o
    Noch kurz eine frage:

    Kann man einstellen das ein Element schon von Anfang an anselectiert ist?
    Anderseits muss ich bei der Form





    ein "If" Command setzten, dass etwas anselectiert werden soll.

    Ansonsten hat sich das hier erledigt, vielen dank.