焦点元素在GotFocus / Activated事件中出现问题

时间:2013-04-26 08:11:12

标签: winforms compact-framework onfocus

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

在.NET中,CF Form没有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(已创建表单实例):txtTextControl清空并获得焦点,txtTextControl_GotFocus事件被提升

2)第二次ShowForm:好的

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

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

1 个答案:

答案 0 :(得分:0)

我曾经有过同样的问题。

将控件的TabIndex设置为0.