Combobox, allowselection = false

  • VB.NET

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

    Combobox, allowselection = false

    Hallo allle zusammen,

    versuche schon eine ganze Weile ein Combobox dazu zu bringen ein aus der Liste angeklicktes Item NICHT als Combobox.Text anzuzeigen. Meine ComboBox ist an eine Tabelle gebunden und zeigt mir einen "langen" String an der aus mehrere (variable Anzahl) E-mailadressen die durch Komma getrennt sind. Also Sowas wie " Email_1@provider.xx, Email_2@provider.xx, Email_3@provider.xx, .....". Im DropDown-Event wird der lange String dann gesplittet und so zeigt die ComboBox mir schön in der Liste die einzelnen E-mailadressen an. Aber nun ist es so, dass wenn man jetzt ein Item aus dieser Liste auswählen WüRDE, dann würde der "lange" E-mailString durch die eine E-mailadresse aus der Combobox-Liste ersetzt werden. Und genau das möchte ich gerne verhindern!

    Bis jetzt habe ich zwei verschiedene Wege ausprobiert, aber leider ohne Erfolg.

    Weg 1: Laut MSDN gibt es für das Combobox-Steuerelement eine allowselection-Eigenschaft (boolean) Diese Eigenschaft ist "geschützt". Toll, aber wie kann ich die auf False setzen?

    Als ich da nicht weiter kam, hab ich versucht, den "langen" String der ja aus viele E-mailadressen besteht wieder zusammen zu fügen falls man "versehentlich" eine E-mailadresse aus der Liste der CBx auswählen würde. Aber gleichgültig in welchem Event der CBx ich den String wieder zusammenbaue, am Ende steht in der CBx immer nur das "selectierte" Item aus der Liste der CBx.

    Wäre schön wenn mir jemand weiter helfen könnte. Nehme jeden Vorschlag dankend an, sogar eine ganz andere Richtung, solange das Ergebnis die erwähnten Bedingungen erFüllt.

    Danke,

    Jeiss
    Hi Inopia.

    Gut schlag mal was vor. Also wie in einer TextBox, Label (oder auch ComboBox) sollte ich meinen "langen String" auf der Form anzeigen können, und auch (auf Wunsch) irgendwie auf eine "besseren" Weise die einzelnen E-mailadressen zu gesicht bekommen. An was hast du denn gedacht.

    Danke,

    Jeiss
    Hi Inopiae, ja stimmt schon teilweise, der Anwender soll eine Information erhalten (in Form von ausgewählten E-mailadressen). Entsprechen diese E-mailadressen aber nicht seinen Wünschen, so hat er aber auch die Möglichkeit sie zu ändern. (über einen Button kann er nämlich welche aus einer Liste auswählen) Meine Idee war eher die, dem Anwender die Möglichkeit zu geben, die E-mailadressen zu "überprüfen". Also um sich bei Bedarf zu vergewissern, dass alles in Ordnung ist. Und da gefällt mir schon die Idee von der kleinen, schlanken Combobox die erst beim anklicken mehr Platz auf der Form in Anspruch nimmt. Aber da darf es aber nicht vorkommen, dass die E-mailadressen (ich erinnere dran dass mehrere E-mailadressen in Form eines langen, durch Komma getrennten String gespeichert sind) durch den aus der Combobox-Liste angeklickten Eintrag ersetzt wird. Also ich würde da schon eher eine ComboBox "ohne selektions-möglichkeit" sehen.

    Aber wo wir schon über eine Multiline-Textbox reden, wie hattest du dir das mit dem Zeilen-Umbruch vorgestellt?

    Kann man den programmieren? Oder dachtest du eher daran die Länge dieser TextBox an die (Buchstaben mässig) längste e-mailadresse anzupassen?

    Ja und um wieder auf "meine" Combobox zurück zu kommen, Weiss du wie man es erreichen könnte diese AllowSelection-Eigenschaft auf True zu setzen? Oder sonst irgendwie zu erreichen, dass beim klicken auf einen Eintrag der ComboBox-Liste nichts passiert?

    Danke,

    Jeiss
    Da fällt mir auf die Schnell nur ein, die Combobox nicht an die Daten zubinden sondern im Code mit den Werten zu füllen. Beim Speichern, kann dann die Combobox ausgelesen und als String zusammengesetzt gespeichert werden.
    NB. Es ist doch schön, wenn man lesbare Namen vergibt. Siehe auch [VB.NET] Beispiele für guten und schlechten Code (Stil).
    Hi Inopiae, ja gar nicht mal so schlecht für "so auf die Schnelle". Auf das was die ComboBox anzeigt kommt es mir ja sowieso nicht so richtig an, sondern eher dass ich die verschiedene E-mailadressen auflisten kann. Und dann macht das ja auch nichts wenn sie dann (falls ein Eintrag angeklickt wurde) eine der Adressen aus der Liste anzeigt.

    Also ich schaue trotzdem die nächten Tage wieder mal hier in das Forum rein um zu sehen ob dir nicht doch noch was anderes einfällt. Und falls ich doch noch selber eine Lösung finden sollte, dann sag ich auch bescheid, damit du dich nicht "umsonst" mit einem schon gelösten Problem beschäftigst. ;)

    Ist das OK so?

    Danke,

    Jeiss
    Hallo hier bin ich wieder.

    Ich plage mich noch immer mit dieser ComboBox rum, bin aber noch nicht am Ende angekommen. Dank Inopiae bin ich schon ein Stückchen weiter aber jetzt stehe ich vor dem Problem dass ich nach dem SelectedValue-Ereignis der Combobox die Text-Eigenschaft zwar ändern kann, aber aus irgend einem Grund wird dann wieder der ausgewählte Eintrag aus der Liste in der ComboBox angezeigt.

    Es muss doch auch noch nach dem SelectedValue-Ereignis möglich sein an Stelle des ausgewählten Eintrages ein anderer Text in der ComboBox anzuzeigen? Hat da jemand mehr Erfahrung mit diesen doch etwas eigensinnigen Comboboxen?

    Würde mich wirklich über jede Hilfe freuen.

    Danke,

    Jeiss