【发布时间】:2016-05-19 06:25:21
【问题描述】:
我有一个自定义的TextBox 控件,这个控件里面有一个Windows 默认的TextBox 控件。由于按下 Tab 时它有一个子控件,因此光标不会直接聚焦在子控件上。需要双击 Tab 键。所以第一个 Tab 是给父母的,第二个是给孩子的。如何通过一个 Tab 键做到这一点?
自定义文本框是:
class MyTextBox : Control
{
TextBox innerBox;
public MyTextBox()
{
//.....
innerBox = new TextBox();
Controls.Add(innerBox);
innerBox.Parent = this;
innerBox.TabIndex = this.TabIndex;
//.....
}
//.....
}
【问题讨论】:
-
将基类更改为 UserControl。或者将其更改为 TextBox 并且根本不添加“内框”。
-
感谢@HansPassant,它成功了。您介意解释一下为什么
UserControl可以解决问题吗? -
它被设计为子控件的容器,而 Control 类不是。看看UserControl.WndProc() method 看看它是怎么做的..
标签: c# winforms custom-controls tabindex