我有一个包含文本框和按钮的自定义控件。我使用自定义控件作为ObjectListView中特定列的编辑控件。
在CellEditStarting事件中我做:
private void datalistViewProducts_CellEditStarting(object sender, CellEditEventArgs e)
{
var ctl = (MyCustomControl)e.Control;
e.Control = ctl;
}
ObjectListView的ConfigureControl
方法已经调用了控件的Select
方法。如果我有一个直接从标准TextBox继承的usercontrol,它可以正常工作。
所以我将以下代码添加到我的usercontrol中:
public new void Select()
{
textBox.Select();
}
但是,如上所述进行用户控制,Select
方法不会将焦点移动到文本框。
我在这里缺少什么?
答案 0 :(得分:1)
您可以在CustomUserControl中创建方法,例如FocusControl(string controlName)
然后调用此方法将控件集中在自定义控件中。
在自定义用户控件中创建方法 -
public void FocusControl(string controlName)
{
var controls = this.Controls.Find(controlName, true);
if (controls != null && controls.Count() == 1)
{
controls.First().Focus();
}
}
调用此方法 -
//textBox1 is the name of your focussing control in Custom User Control
userControl11.FocusControl("textBox1");
答案 1 :(得分:1)
使它最终工作的唯一方法是在usercontrol中添加以下代码:
protected override void OnEnter(EventArgs e)
{
base.OnEnter(e);
textBox.Select();
}