2

Windows モバイル アプリケーションを開発していますが、ユーザーにフォーム (読み込み画面) が表示された後に何かをしたいと考えています。

通常、私はForm.Shownイベントを持っていますが、.net コンパクト フレームワーク v3.5 では、このイベントを見つけることができません。

イベントに相当するもの、Shownまたは使用できる簡単な回避策を知っている人はいますか? できれば、自分でマルチスレッドを実行したくありません。

4

1 に答える 1

3

私が考えることができる唯一のことは、フォームが表示されているときに少しハックすることです。デフォルトのコントロールがあれば、フォーカスを受け取ります。Focus イベントは、フォームが表示される前の最初の読み込み中に発生しますが、2 回目に表示されるときに発生します。最初のActivateで設定された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
    }
}
于 2012-07-03T19:38:03.423 に答える