我正在开发一个Windows Mobile应用程序,并且在向用户显示表单(加载屏幕)之后我想要做些什么。显示表单后执行操作。
通常,我有一个Form.Shown
事件,但使用.net compact framework v3.5,我找不到这个事件。
有谁知道相当于Shown
事件或我可以使用一个简单的解决方法?如果我能帮忙,我不想自己做多线程。
我正在开发一个Windows Mobile应用程序,并且在向用户显示表单(加载屏幕)之后我想要做些什么。显示表单后执行操作。
通常,我有一个Form.Shown
事件,但使用.net compact framework v3.5,我找不到这个事件。
有谁知道相当于Shown
事件或我可以使用一个简单的解决方法?如果我能帮忙,我不想自己做多线程。
我能想到的唯一的事情就是有点黑客,当你的表单被显示时,如果它有一个默认的控件,那么它会得到焦点。在显示表单之前,焦点事件将在初始加载过程中触发,但会在第二次显示时触发。在第一次激活时设置的Activate事件中放置一个布尔值,然后在默认控件Got Focus事件中进行测试。
其他选项是使用定时器。将Interval设置为10,在Form Load事件结束时启动它,然后运行启动特定代码。
private void Form1_Load(object sender, EventArgs e)
{
timer1.Start();
}
private void timer1_Tick(object sender, EventArgs e)
{
timer1.Stop();
//Do something
}
每汉斯的评论的一个例子:
public partial class Form1 : Form
{
public delegate void DoWorkDelegate();
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
BeginInvoke(new DoWorkDelegate(DoWorkMethod));
}
public void DoWorkMethod()
{
//Do something
}
}
GotFocus事件没有再次发射。有什么我必须做的,以实现这一目标? –
@ Sam它在我的系统上运行,但我在桌面上运行.net 2.0。确保它是默认值,只要tab等于0.另外我在过去使用了一个单次计时器,在我的form_load事件结束时有几毫秒的延迟。 –
我正在运行.net compact framework v3.5,以及如何“确保它是默认值,只要选项卡等于0” –
怎么样Form Load事件? –
@NikhilAgrawal我相信这是在表单显示之前发生的。 –
我会看看我是否可以为你找到解决方法,并在几个编辑我的答案。如果我设法找到合适的解决方案,我将取消隐藏 – KreepN