- PR -

フォームが表示された後のイベント

1
投稿者投稿内容
未記入
会議室デビュー日: 2008/08/19
投稿数: 3
投稿日時: 2008-09-02 12:30
フォームが完全に表示された後に処理をしたいのですが、
LoadやShown、Activatedイベントに処理を書いても、フォームが完全に表示される前に処理を行ってしまいます。
フォームが完全に表示された後に処理を行いたい場合、どのイベントに処理を記述すればいいのでしょうか?
ご教示願います。
rain
ぬし
会議室デビュー日: 2006/10/19
投稿数: 549
投稿日時: 2008-09-02 12:45
引用:

未記入さんの書き込み (2008-09-02 12:30) より:
フォームが完全に表示された後に処理をしたいのですが、
LoadやShown、Activatedイベントに処理を書いても、フォームが完全に表示される前に処理を行ってしまいます。



これをどのようにして確認したのか、よかったらサンプルコードを見せてください。
未記入
会議室デビュー日: 2008/08/19
投稿数: 3
投稿日時: 2008-09-02 13:21
既存の長いコードに繋げて試したので、サンプルコードは書けませんが
大まかな手順として、イベント内でコントロールの作成、配置と削除を100回繰り返しました。
rain
ぬし
会議室デビュー日: 2006/10/19
投稿数: 549
投稿日時: 2008-09-02 14:17
引用:

未記入さんの書き込み (2008-09-02 13:21) より:
既存の長いコードに繋げて試したので、サンプルコードは書けませんが
大まかな手順として、イベント内でコントロールの作成、配置と削除を100回繰り返しました。



Shownイベントはフォームが初めて表示された後に発生するイベントですので、このイベントを使えばいいと思います。
フォームが完全に表示されないのは描画が追いついていないのが原因な気がしますので、
FormのRefresh()メソッドを入れてみるとどうでしょうか?

コード:
        private void Form1_Shown(object sender, EventArgs e)
        {
            this.Refresh();
            System.Threading.Thread.Sleep(5000);
        }

Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2008-09-03 21:42
引用:

未記入さんの書き込み (2008-09-02 13:21) より:
既存の長いコードに繋げて試したので、サンプルコードは書けませんが
大まかな手順として、イベント内でコントロールの作成、配置と削除を100回繰り返しました。


新しいプロジェクトを起こせばいいと思います。
それと、どうなることを期待して、どのような結果だったので、完全な表示前に処理されたと判断したのでしょう?100回くらいだと、あっという間に終わるような気がする...
1

スキルアップ/キャリアアップ(JOB@IT)