2012-07-03 47 views
2

我正在开发一个Windows Mobile应用程序,并且在向用户显示表单(加载屏幕)之后我想要做些什么。显示表单后执行操作。

通常,我有一个Form.Shown事件,但使用.net compact framework v3.5,我找不到这个事件。

有谁知道相当于Shown事件或我可以使用一个简单的解决方法?如果我能帮忙,我不想自己做多线程。

+0

怎么样Form Load事件? –

+0

@NikhilAgrawal我相信这是在表单显示之前发生的。 –

+0

我会看看我是否可以为你找到解决方法,并在几个编辑我的答案。如果我设法找到合适的解决方案,我将取消隐藏 – KreepN

回答

3

我能想到的唯一的事情就是有点黑客,当你的表单被显示时,如果它有一个默认的控件,那么它会得到焦点。在显示表单之前,焦点事件将在初始加载过程中触发,但会在第二次显示时触发。在第一次激活时设置的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 
    } 
} 
+0

GotFocus事件没有再次发射。有什么我必须做的,以实现这一目标? –

+0

@ Sam它在我的系统上运行,但我在桌面上运行.net 2.0。确保它是默认值,只要tab等于0.另外我在过去使用了一个单次计时器,在我的form_load事件结束时有几毫秒的延迟。 –

+0

我正在运行.net compact framework v3.5,以及如何“确保它是默认值,只要选项卡等于0” –