0

有一个带有文本元素的表单,每次显示表单时都应该获得焦点。

在 .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事件引发

2) 第二次 ShowForm : OK

3) 第三次 ShowForm : txtTextControl 清空,但没有获得焦点

有错误或功能吗?有解决方法吗?Show 我重写 ShowForm?OpenNETCF.IOC.UI 是更好的解决方案(项目中有 50 个表单)吗?

4

1 回答 1

0

我曾经有过同样的问题。

将控件的 TabIndex 设置为 0。

于 2013-04-28T22:17:52.840 回答