ComboBoxe Items passen sich selbstsändig an?

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von Kaypetri.

    ComboBoxe Items passen sich selbstsändig an?

    Hallo. Also ich weis nicht was eigentlich los ist. Ich habe eine Form mit 3 CB. deren Inhalt füge ich im Form_Load dazu.

    VB.NET-Quellcode

    1. Private Sub Application_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    2. ListDokTyp_Loaded()
    3. ListDokForm_Loaded()
    4. ListDokProj_Loaded()
    5. End Sub


    VB.NET-Quellcode

    1. Private Sub ListDokTyp_Loaded()
    2. dlist.Clear()
    3. data = LogIn.prDb.getDokTyp()
    4. If data Is Nothing Then
    5. ' Dim dwin As New DialogWin(Application.prDb.getLastErrorMsg)
    6. Return
    7. End If
    8. 'dlist.Add("")
    9. For Each row In data.Rows
    10. dlist.Add(row(0))
    11. Next
    12. CB_DokTyp.DataSource = dlist
    13. End Sub


    Wenn ich nun ein item aus CB1 auswähle, dann passiert bei der CB2 und CB3 plötzlich genau das gleiche. Alos dort wird automatisch das item2 angezeigt. Ich muss die Boxen aber unabhängig behandeln können. Ich habe weder eine Verknüpfung der CBs noch sonst was.

    Weis evtl. jemand woran das liegt? Ich habe noch nie so ein Problem gehabt.

    Gruß Kay




    EDIT: OK hat sich schon erledigt. Man sieht manchmal den Wald vor lauter Bäumen nicht. Ich muss nat. erst dlist leeren.

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

    @Kaypetri Jou, das hatten wir erst vor kurzem. Du musst die Daten clonen, bevpr Du sie den CBs zuweist:

    VB.NET-Quellcode

    1. data = LogIn.prDb.getDokTyp().Clone() ' so was
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Ok. Da das eigentliche Problem gelöst ist behandel ich jetzt dennoch ein weiteres Problem mit den CB.

    Wenn die Loaded Events abgelaufen sind und die Form geladen ist wird mir wie gewünscht der 0. Index jeder CB angezeigt. Jetzt passiert aber folgendes.
    Wenn ich auf eine CB gehe und einen anderen Index auswähle dann werden plötzlich alle CBs komplett geleert. Erst beim 2. Klick auf den eigentlich zu wählenden Index bleibt dieser auch in der CB stehen.

    Erklären kann ich mir dieses Verhalten nicht, da sich das auch nicht abfangen lässt wo er das macht bzw. wie er darauf kommt dies so zu tun.
    @Kaypetri Kannst Du ein kleines Testprogramm posten, das dieses Verhalten reproduziert?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Naja, dann haste halt irgendwo nen Fehler in deinem Programm ;)

    Schau mal beim debuggen ob dein Programm das tut was es soll. Sowas lässt sich beim debuggen relativ einfach in Einzelschritten rausfinden.
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen

    Kaypetri schrieb:


    Erklären kann ich mir dieses Verhalten nicht, da sich das auch nicht abfangen lässt wo er das macht bzw. wie er darauf kommt dies so zu tun.


    Nein. Im Debugger macht er das nicht. Es ist auch im Code kein ChangeEvent integriert. Wo soll er dann also hin springen? Die CBs werden aus eine DataSource gefüllt und nach dem laden der Form wird korrekter Weise Index 0 angezeigt. Will ich einen anderen Index auswählen, passiert das oben gepostete.
    Ich löse das gerade in dem ich im Load-Event der Form den Index einfach nochmal festlege, aber komisch ist das Verhalten schon.

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