Ich habe eine benutzerdefinierte TextBox
Kontrolle und dieses Steuerelement hat eine Windows-Standard TextBox
Kontrolle innerhalb davon. Da beim Drücken der Tabulatortaste ein untergeordnetes Steuerelement vorhanden ist, wird der Cursor nicht direkt auf das untergeordnete Steuerelement ausgerichtet. Es ist erforderlich, die Tabulatortaste zweimal zu drücken. So geht das erste Tab zum Elternteil und das zweite zum Kind. Wie kann ich es mit einer Tabpresse machen?Wie fokussiere ich das Kind-Steuerelement, wenn Tab gedrückt wird?
Individuelle TextBox ist:
class MyTextBox : Control
{
TextBox innerBox;
public MyTextBox()
{
//.....
innerBox = new TextBox();
Controls.Add(innerBox);
innerBox.Parent = this;
innerBox.TabIndex = this.TabIndex;
//.....
}
//.....
}
Ändern Sie die Basisklasse Usercontrol machen. Oder ändere es in TextBox und füge keine "innerbox" hinzu. –
Danke @HansPassant, es hat funktioniert. Würde es Ihnen etwas ausmachen zu erklären, warum 'UserControl' das Problem löst? –
Es wurde entwickelt, um ein Container für untergeordnete Steuerelemente zu sein, die Control-Klasse nicht. Sehen Sie sich die [UserControl.WndProc() -Methode] (http://referencesource.microsoft.com/#System.Windows.Forms/winforms/Managed/System/WinForms/UserControl.cs, f9a8bf95a2d28b6e) an, um zu sehen, wie es funktioniert. –