- PR -

特定のフォームの動作を停止させる

1
投稿者投稿内容
KT工房
常連さん
会議室デビュー日: 2006/06/20
投稿数: 49
投稿日時: 2007-10-01 19:12
いつもお世話になってます。

もしわかりましたら教えていただけると助かります。

現在複数のフォームを同時に表示しています。
そのうち特定のフォームの動作(Form上のTimerの動作など)
を別のフォームから停止させたいのですが、
なにか方法はありませんでしょうか?

よろしくお願いします。

開発環境は VisualStudio .Net 2003 VB で、
OSは WindowsXP Pro を使用しています。



じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-10-01 19:17
引用:

KT工房さんの書き込み (2007-10-01 19:12) より:

そのうち特定のフォームの動作(Form上のTimerの動作など)
を別のフォームから停止させたいのですが、なにか方法はありませんでしょうか?


Timer が設置されている Form で動作を停止させるメソッドを書いて、それを公開すれば良いだけなのではないでしょうか。 それだけで外から呼び出せますよね。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
KT工房
常連さん
会議室デビュー日: 2006/06/20
投稿数: 49
投稿日時: 2007-10-02 09:29
じゃんぬねっとさん、いつも回答ありがとうございます。

特定のフォームが複数あり、それぞれが違うテンプレートの可能性もあります。
ですので、その方法だとちょっと厳しいかな?と思っています。
停止させた後、復帰させる必要もあるため最小限の改造で実装したいと考えています。

よろしくお願いします。
まるく
大ベテラン
会議室デビュー日: 2004/01/09
投稿数: 181
投稿日時: 2007-10-02 10:02
何が厳しいのか判らない。
じゃんぬねっとさんが示された方法より単純な方法があるとは思えないんですけど。

1.新しいインタフェースを作って Form の停止、開始メソッドを定義
2.すべてのテンプレートに1.を実装(空メソッド)
3.すべてのフォームに2.の空メソッドのオーバライドを実装

とすれば統一的に扱えるけど、そういう話ではなく?
KT工房
常連さん
会議室デビュー日: 2006/06/20
投稿数: 49
投稿日時: 2007-10-02 10:56
そうですね、最小に改造するには継承を1階層増やして
メソッドを追加したほうが早そうですね。
その方向で進めてみます。
ありがとうございました。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-10-02 20:44
客先に出かけていましたので反応が遅れてしまいました。 まるくさん、フォローありがとうございます。

引用:

KT工房さんの書き込み (2007-10-02 09:29) より:

特定のフォームが複数あり、それぞれが違うテンプレートの可能性もあります。

引用:

KT工房さんの書き込み (2007-10-02 10:56) より:

そうですね、最小に改造するには継承を1階層増やしてメソッドを追加したほうが早そうですね。


何も継承に頼る必要はないのではないでしょうか? こういった場合は Interface (ポリモーフィズム) で実装すると影響範囲が少ないのではと思います。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
1

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