显示表单后执行操作。

时间:2012-07-03 18:49:53

标签: c# winforms events compact-framework windows-mobile-6.5

我正在开发一个Windows移动应用程序,我希望在向用户显示表单(加载屏幕)后执行某些操作。

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

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

1 个答案:

答案 0 :(得分:3)

我唯一能想到的就是一个黑客,当你的表单显示时,如果它有一个默认控件,那么它将获得焦点。 Focus事件将在显示表单之前的初始加载期间触发,但在可见时将第二次触发。在使用第一个Activates设置的Activate事件中放置一个布尔值,然后在默认控件Got Focus事件中进行测试。


其他选项是使用Timer。将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
    }
}