c# - 显示表单后执行操作。

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

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

通常情况下,我有一个 Form.Shown 事件,但是使用 .net Compact Framework v3.5,我找不到该事件。

有谁知道与 Shown 事件等效的事件或我可以使用的简单解决方法?如果可以的话,我不想自己做多线程。

最佳答案

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


其他选项是使用计时器。将间隔设置为 10 之类的值,在表单加载事件结束时启动它,然后运行启动特定代码。

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
    }
}

关于c# - 显示表单后执行操作。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11317257/

相关文章:

c# - 在 Word 'Save As' 对话框中拦截保存事件

c# - 自定义控件派生自组件 - OnCreate 事件?

C#转发接口(interface)事件

javascript - 动态创建元素的视频addEventListener

events - 什么时候在 bitcoind 上发生 walletnotify 事件

C# 从列表框中删除项目

c# - 在不添加任何数据的情况下重新生成 Code-First 数据库

c# - AppDomain,运行程序集 .exe 或 .dll?

c# - 在 webbrowser 上获取函数 javascript 的返回值

c# - 在 C# 的 ListView 中删除相同的数字