- - PR -
Showで複数画面を表示し重複表示を抑止したいです。
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-01-03 11:41
皆さまお疲れ様です。
VB.NET2003開発で、機能が異なる複数のDLL上画面をマルチで表示したく 「Show」を使用し表示しているのですが、メニューから同じ機能の画面 表示ボタンを押下すると重複して起動してしまいます。 現在、表示している画面を重複表示させないようにする良い方法は ないでしょうか?「Public Shared AAA As Int16」などでフラグ化して 判断するしかないのでしょうか? 初心者的な質問で申し訳ありませんが、ご教授の程よろしくお願い致します。 | ||||||||
|
投稿日時: 2006-01-03 12:13
現在の実装が見えないので最良解は出せませんが、いくつかの方法がありますよね。
メニューがすべてを知っているべきという点は合ってます。
_________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2006-01-03 15:13
じゃんぬねっとさん、ご教授ありがとうございます。
質問内容を簡略化しており申し訳ありませんでした。 MainMenuとSubMenuの関係は同一DLL(A.DLL)内でMDIFormの 親子関係で構成されております。 サブメニュー(SubForm)からある処理画面(他のDLL(B.DLL)) を「Show」で開き、さらに他の処理画面(C.DLL上にある画面)を 呼出して処理をおこなえるように実装しようと考えております。 この場合、サブメニューにをアクティブにして再度、同じ処理ボタンを 押下した場合、同一処理画面が開いてしまうので、重複して開いて しまうことを抑止したいと考えております。 頂きましたご教授内容 「メニュー側で Form のコレクションを作っておいて一元管理する フラグと一緒なのですが、Form の数が多くなっても修正は容易です。」 から「ArrayList」「Specialized.NameValueCollection」「Hashtable」 等を活用しコレクションを定義してフォームを管理するということ でよろしいでしょうか? よろしくお願い致します。 | ||||||||
|
投稿日時: 2006-01-03 15:45
Menu なら、Menu のチェックで判断するっていうのも手軽ですね。 起動したらチェックしておくということで、見た目的にも親切です。 ただ、MDI ということで「メニューのマージの仕方」によっては、泥臭くなります。
ArrayList か Hashtable でいいと思います。 保守を考えて、"名前" でどうこうするより "インスタンス" の参照で判別しましょう。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2006-01-03 20:25
じゃんぬねっとさん、再びご返信ありがとうございました。
ご教授いただいた内容で、コーディング致します。 この度は、ありがとうございました。 | ||||||||
|
投稿日時: 2006-01-03 21:54
ご参考
http://quick-tips.hp.infoseek.co.jp/vs.net/sample/index.html | ||||||||
|
投稿日時: 2006-01-04 00:38
ややこしい管理体制... とはいっても前提が単一のようですが。
_________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 |
1