Über Combobox panels aus und einblenden

  • VB.NET

Es gibt 23 Antworten in diesem Thema. Der letzte Beitrag () ist von DJBasedream.

    Über Combobox panels aus und einblenden

    Nabend,

    Wie kann ich per combobox panels ein und ausblenden.

    Also in der combobox sollen die panels auszuwählen sein,

    panel1
    panel2
    ...

    die panels liegen übereinander

    ich breuchte einen code dafür habe schon gegooglet, aber so nichts gefunden.


    danke schon mal :)
    Visible ist schon mal ein Anfang.

    Leg Dir ein neues Projekt an, setzte Deine Panels drauf. Beim Laden der Form gehst Du alle Controls auf Deiner Form in einer ForEach-Schleife durch und fügst die Panels, respektive Ihren Namen in die Combobox ein. Im SelectedIndexChanged-Event der Combobox suchst Du Dir dann das Panel, welches selektiert wurde und setzt die Visible-Eigenschaft entsprechend.
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o
    Wenn Du das tust, dann hast Du ein Problem, weil Du nur leere Einträge in der Combobox haben wirst. Da hatten wir gestern ne Diskussion drüber. Auch das Setzen des DisplayMembers = "Name" bringt nichts. Einträge sind schon da, nur wird nichts angezeigt. Das passiert mit allen Objecten, die IComponent implementieren, da ist wohl was Buggy. Probiers selber aus. Du kannst natürlich eine andere Property als DisplayMember heranziehen, das haut hin. Sonst hätte ich ihm das schon vorgeschlagen.

    EDIT: Hier der Link zur Diskussion: vb-paradise.de/programmieren/h…listbox-bug-oder-feature/

    EDIT: Du kannst Dir natürlich die Tag-Propety zu Nutze machen. Einfach der Tag-Property die Name-Property zu weisen. DisplayMember dann auf "Tag" setzen.
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o

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

    Hast Du auch die DataSource-Property der ListBox gesetzt? Bzw. die Liste richtig an die ListBox gebunden? Seh ich da in Deinem Code nämlich nicht.
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o
    Jo, weil mich das nämlich irre macht :whistling: :whistling: :wacko: Hab gestern glaub ich fast den ganzen Tag mit dem Scheiss verbracht. Vielleicht sollten wir wieder auf den TE warten, es geht ja schliesslich um sein Problem.
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o
    Salut! ;)

    Meine Lösung wäre, einfach in den Einstellungen des (der) Panel(s) Visible auf "False" zu setzen. Den Code würde ich so machen:

    VB.NET-Quellcode

    1. If ComboBox1.SelectedIndex = -1 Then
    2. Panel1.Visible = True
    3. End if
    4. If Not Combobox1.SelectedIndex = -1 Then
    5. Panel1.Visible = False


    Das machst du dann einfach mit den anderen Panels auch, dann sollte es klappen!

    Gruß!
    Da wir den armen Kerl wohl gestern verschreckt haben, hier:

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    3. Dim result = From p As Panel In Me.Controls.OfType(Of Panel)() Select p Order By p.Name
    4. Me.ComboBox1.Items.AddRange(result.ToArray())
    5. Me.ComboBox1.DisplayMember = "Name"
    6. End Sub
    7. Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged
    8. If Not IsNothing(Me.ComboBox1.SelectedItem) Then
    9. Dim p As Panel = DirectCast(Me.ComboBox1.SelectedItem, Panel)
    10. p.Visible = Not p.Visible
    11. End If
    12. End Sub
    13. End Class
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o
    hilft mir nicht weiter,

    funzt nicht.

    mit dem Me.Controls.OfType schein was nicht zu passen das wird mir blau unterstrichen angezeigt
    die meldung ist das das oftype keine memeber von windows form controls irgent was währe.

    sorry bin kein experte in vb sondern immer noch vollkommener anfänger

    DJBasedream schrieb:

    mit dem Me.Controls.OfType schein was nicht zu passen das wird mir blau unterstrichen angezeigt
    die meldung ist das das oftype keine memeber von windows form controls irgent was währe.


    Da versucht man Dir ernsthaft zu helfen und Du rotzt so ne Antwort hin. Dann auch noch mit einer tollen Fehlerbeschreibung Deinerseits.

    Wie wärs mal, wenn Du einen Verweis auf Linq in Deinem Projekt setzt, schon würds gehen.
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o
    Ja entschuldige, war so nicht gemeint

    Ist mir ja selbst blöd das ich vb nicht wirklich kann,. und immer mir versuche meine programm irgent wie zusammen zu werfen mit code suche bei google etc.
    nur anders verstehe ich sowas und lerne ich sowas einfach nicht, hab das bei allem so.

    Naja wollte halt so das man in der combo box halt die panels zur auswahl hat, nur das sie jeder einen eigenen namen haben, also nicht panel 1 oder panel 2 sondern anders, das hat seinen zweck, und wenn ich dann zb panel 3 auswähle das dann die anderen panels im visible auf false gesetzt wercdne und nur panel 3 eingeblendet wird, genau so zb wenn ich panel 2 wähle, oder panel 4.

    Es soll nur halt die combobox sein, weil die für mein projekt am besten passt.