- - PR -
タイマコントロールイベント
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-01-16 17:04
お世話になります。
Form1にて時間がかかる処理を実行中に参照設定したDLL(Form2)を 起動しています。 Form2にはタイマコントロールを配置して処理中の間に間隔的に ラベルの文字を変更していくようにしたいのですが、なぜか タイマのイベント(Tick)が発生しません。 フォームロード時にInterval、Enabledを設定しています。 なぜイベントが発生しないのかどなたかご存知の方教えてください。 宜しくお願い致します。 | ||||||||
|
投稿日時: 2006-01-16 17:18
こんにちは、kanaiです。
・Form1の時間がかかる処理 ・Form2のタイマー処理 の2つが同じスレッドで動作しているからではないでしょうか。 Form1の時間がかかる処理を別スレッドで動かすようにすれば よいと思います。 | ||||||||
|
投稿日時: 2006-01-16 23:50
どうやって起動しています? モジュールを Load していますか? Process を開始しているんですか?
多分、Form1 の処理で Busy 状態になっているからです。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2006-01-17 09:31
kanaiさん、じゃんぬねっとさん、ありがとうございます。
フォームの起動はインスタンス生成してshowメソッドで行っています。 Form2は起動しますがタイマイベントが発生せずに応答なしとなって しまいます。kanaiさんが言うように別スレッドで処理させるしかな いのでしょうか? | ||||||||
|
投稿日時: 2006-01-17 09:37
起動というものだから、別プロセスかと思いました...
スレッド化してタイマを使うとなると別の問題を作りこむことになります。 処理進捗を示すだけであれば、適宜 Form2 へ制御を返すだけでも良いですね。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2006-01-17 09:39
動きがわかりにくいからあんまり好きではないけど
DoEvents とか、 http://dobon.net/vb/dotnet/vb6/doevents.html |
1