WinForm - TabStop Funktioniert Nicht
Ich habe eine WinForm mit Gruppe 3 Boxen, eine mit combo-Boxen, und zwei mit radio-buttons. Ich alle von Ihnen und Ihren Kindern Steuerelemente "TabStop = false", aber wenn ich den Zyklus mit TAB, der derzeit ausgewählten radio-button in den beiden letzten Gruppe-Boxen bekommt fokussiert.
Wenn es keine Möglichkeit dieses Verhalten zu ändern, was wäre eine gute Falle zu fangen, und bewegen Sie den Fokus Weg? Ich kann nicht finden, ein "OnFocus" - event.
Die Lösung wird eine Methode (code unten) behandeln Sie die "Enter" - Ereignis eines jeden radio-button in der form (wenn es das ist, was Sie wünschen).
Tatsächlich, ich Tat es nur für die radio-buttons der ersten Gruppe box und es funktionierte, die zweite Gruppe im Feld der radio-buttons nicht Fokus erhalten, auch wenn Ihre "Enter" - Ereignissen nicht behandelt werden. Dies ist nicht das Verhalten, das Sie erwartet hätte.
private void radiobuttonXGroup1_Enter(object sender, EventArgs e)
{
SomeOtherControl.Focus();
}
In der *.Designer.cs-Datei, die Sie Bearbeiten alle Enter-Ereignis (für jeden radio-button) zu zeigen, um einen event-handler (mit der oben beschriebenen Methode).
this.radiobutton1Group1.Enter += new System.EventHandler(this.radiobuttonXGroup1_Enter);
this.radiobutton2Group1.Enter += new System.EventHandler(this.radiobuttonXGroup1_Enter);
this.radiobutton3Group1.Enter += new System.EventHandler(this.radiobuttonXGroup1_Enter);
- winforms, webforms, oder wpf?
- die Frage beginnt mit "ich habe eine WinForm...]"
- Ich bearbeitet die Frage in Antwort auf Robaticus Frage. Das problem ist, dass mein browser nicht mehr funktioniert mit StackOverflow-Seite. Ich kann nur Bearbeiten, bereits gebucht Fragen, aber nicht nach neuen Fragen oder Kommentare hinzufügen (mit Firefox-jetzt).
- Sie sind vermutlich gedrosselt. Das passiert, wenn Sie nie akzeptieren, eine Antwort 🙂
- Eigentlich, wenn ich in meinem Kommentar, der den text "eine winform mit" nicht vorhanden war. Es wurde in der Folge bearbeitet, um diesen text. Blick auf die version der Geschichte.
- In meinem Kommentar zu Muhammad, erwähnte ich, dass ich mit Firefox in der Lage sein, um einen Kommentar hinzuzufügen, so wie man von einem browser-Problem zu einem "gedrosselten" Problem? Lässt sich nicht ablenken lassen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
In der MSDN-Dokumentation für RadioButton.TabStop Staaten ", die Diese API unterstützt die .NET Framework-Infrastruktur und ist nicht dazu vorgesehen, direkt von Ihrem code". Was im Grunde bedeutet, "Das wird nicht funktionieren, wie Sie es erwarten".
Mit, dass gesagt wird das Enter-Ereignis wird ausgelöst, wenn die Schaltfläche den Fokus erhält. Sie können versuchen, zu verwenden, verschieben Sie den Fokus auf ein anderes Steuerelement.
Die TabStop auf False RadioButton um zu verhindern, dass die Tab der regler arbeitet, bis Sie actully wählen Sie das Optionsfeld ohne zusätzliche überschreibungen wie vorgeschlagen von @msergeant.
BEARBEITEN
Den folgenden code verhindert, dass der code immer ein tab-Taste, Veranstaltung:
Radio-buttons Verhalten sich anders mit Bezug auf Registerkarte von den anderen Steuerungen, dass Sie die Arbeit in den sets oder Gruppen basierend auf der Einstellung der Registerkarte index oder platzieren Sie dann die radio buttons in einer Gruppe im Feld.