有一个带有text元素的表单每次显示时都应该接收焦点
.NET CF表单没有OnShow(n)事件
我尝试使用变通方法:
MyForm_GotFocus() // or MyForm_Activated
{
txtTextControl.Text = string.Empty;
txtTextControl.Focus()
}
txtTextControl_GotFocus()
{
txtTextControl.SelectAll()
}
获取表单实例的代码:
public static MyForm GetForm
{
get
{
if (s_inst == null || s_inst.IsDisposed)
{
s_inst = new MyForm();
}
return s_inst;
}
}
public static void ShowForm()
{
var frm = GetForm;
frm.Show();
}
1)第一次ShowForm (Form实例已经创建):txtTextControl清空并获得焦点,引发txtTextControl_GotFocus事件
第二次ShowForm: OK too
3)第三次ShowForm: txtTextControl清空,但没有得到焦点
是否有bug或特性?有解决办法吗?我需要重写ShowForm吗?OpenNETCF.IOC.UI是更好的解决方案(项目中有50个表单)吗?
我曾经也有过同样的问题。
设置控件的TabIndex为0