Combo-Box msg.box bei illegalen Werten

  • VB.NET

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von ~blaze~.

    Combo-Box msg.box bei illegalen Werten

    MOin,

    wie kann ich folgendes am besten umsetzen:

    Ich hab eine Combo-Box, welche als Auswahlmöglichkeiten eine Zahlenreihe (50 bis 310) enthält. Ich würde gerne das so handhaben, das obwohl die Werte in dem Feld drinstehen, wenn ein Wert unter z.B 200 gewählt wird, eine MsgBox erscheint.

    Danke im Vorraus!
    Du abonnierst das SelectedIndexChanged-Event der ComboBox. Dazu machst du einfach einen Doppelklick im Designer auf selbige. Die ComboBox verfügt über eine Integer als Eigenschaft, namens SelectedIndex. Diese gibt das derzeit ausgewählte Item an. In der Methode des Events, die du gerade durch den Doppelklick erstellt hast, fragst du dann einfach diesen Wert ab. Du musst natürlich beachten, dass diese Methode dir nicht den Wert des Items zurückgibt. Dafür müsstest du dann noch 50 addieren.

    Eine weitere Anregung von @~blaze~ war ja, dass du ein NumericUpDown nimmst:
    Bei dem kannst du einen Mini- und einen Maximalwert einstellen, und kannst direkt den Wert abfragen. Zudem ersparst du dir die Arbeit die Zahlen in die ComoBox zu schreiben, sofern du dies nicht über den Quellcode machst. Aber die ganze Sache hier mit dem NumericUpDown musst du nicht machen, es war nur ein Vorschlag.

    LG :)
    Es wäre aus designtechnischer Sicht wohl sinnvoll, das zu einem späteren Zeitpunkt zu melden, übrigens. Der Benutzer wird sonst erschlagen von der unerwarteten Nachricht. Der Benutzer rechnet nur bei der Betätigung eines Buttons, Doppelklicks oder derart abweichenden Spezialaktionen oder vorgesehenen Elementen mit einem derartigen Feedback.
    Was auch interessant für dich sein könnte, sind die ErrorProvider-Komponente und das Validated-Event von Controls, wo man bspw. die Hintergrundfarbe des Steuerelementes ändern könnte. Zusätzlich wäre tatsächlich ggf. ein hörbares Ereignis über die System.Media.SystemSounds-Klasse nicht schlecht.

    Viele Grüße
    ~blaze~