Button über taste auslösen

  • VB.NET

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

    So umständlich?

    Jede Form hat eine Eigenschaft AcceptButton und eine Eigenschaft CancelButton. Wenn die gewünschte Taste ausschließlich Return oder Escape sein soll, kann man dies entsprechend ausnutzen, und diesen Eigenschaften (AcceptButton für die Return-Taste und CancelButton für die Esc-Taste) den gewünschten Button direkt zuweisen. Müsste rein theoretisch auch funktionieren, dies zur Laufzeit zu ändern, hab ich aber noch nie probiert und noch nie gebraucht.
    Weltherrschaft erlangen: 1%
    Ist dein Problem erledigt? -> Dann markiere das Thema bitte entsprechend.
    Waren Beiträge dieser Diskussion dabei hilfreich? -> Dann klick dort jeweils auf den Hilfreich-Button.
    Danke.

    ErfinderDesRades schrieb:

    warum sollte man das zur Laufzeit machen?

    Weil man das auch für andere Zwecke nutzen kann als nur für einen Dialog.
    Ich habe z.B. schon in VB6 diesen Mechanismus (dort funktioniert er etwas anders, das Ergebnis ist aber das gleiche) ausgenutzt, um Eingaben mit Return bestätigen zu können. Dort hatte ich dann einen Button als "DefaultButton" definiert und diesen außerhalb des Clientbereichs oder in der ZOrder hinter einem anderen Control versteckt. Weiß nicht mehr was das genau für ein Anwendungsfall war (könnte eine Chat-Eingabe in einer TextBox gewesen sein).

    Es gibt immer noch eine Menge Leute, die erwarten, dass in umfangreichen Eingabemasken die Eingabe in einem Feld mit Return bestätigt werden und der Fokus dann auf das nächste Eingabefeld wechseln soll. Ich weise dann zwar immer darauf hin, dass das nicht dem Windows Standard entspricht, aber wenn der Kunde, Chef, who-else darauf besteht, dann ist dieser Mechanismus dafür nicht gerade ungeeignet. Und wenn dann nach dem letzten Eingabefeld ein weiterer Return die "OK"-Taste auslösen soll, ist auch ein Beispielfall gegeben, wo der AcceptButton zur Laufzeit geändert wird.
    Weltherrschaft erlangen: 1%
    Ist dein Problem erledigt? -> Dann markiere das Thema bitte entsprechend.
    Waren Beiträge dieser Diskussion dabei hilfreich? -> Dann klick dort jeweils auf den Hilfreich-Button.
    Danke.