- - PR -
MDI親フォームのToolBarを切り替えるには?
投稿者 | 投稿内容 | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-10-21 11:24
あー、すいません件名が件名なだけに "結論" がそっちに行きそうでした。 本論としては「再現できなかった」ということです。
それでも、再現できなかったという意味です。 (重複している部分は書いてもムダなので書いていません) 私のコードは試されたのでしょうか? # コードを記述する際には [quote] タグではなく [code] タグ使ってくださいね。 # 先ほどから引用になってますが、意味がないです。(インデント潰れますし) _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||||||||||
|
投稿日時: 2005-10-21 14:37
じゃんぬねっとさんのコードを試してみました。
結果的には同様現象が発生してしまいました。 発生条件として、MDI子フォームを最小化した場合という ことが分かりました。 MDI子フォームの初期表示状態は最大化です。 一度、最小化すると後はどんどん動きが怪しくなります。 親MDIフォーム「ABC」があるとして、 子MDIフォーム「A」、「B」、「C」があるとします。 「A」を開いた後、「A」を最小化して閉じます。 それから、「B」を開いて、(最大化されているので)通常の フォームに戻し、周りを見てみると、 「A」が最小化された状態で現れています。 その「A」のウィンドウの動作がスレの冒頭で申し上げたように おかしな動きをします。 最小化さえしなければ、その現象は起こらないようです。。。 初期表示状態が最大化なのは関係ないようです。 | ||||||||||||||||||||
|
投稿日時: 2005-10-21 14:57
私も確認できました。 MDI 子フォームを最小化の状態で閉じた時でかつ、 Closing イベントで閉じることをキャンセルして、不可視にした場合に起こるようです。 条件が 1 つでも欠けた場合に、この現象は起こらないようです。 Visible = true にされてしまうトリガーは、ToolBar にアイテムを加えた場合でした。
私の端末では、サイズ変更と移動はできるものの、 何故か Form がアクティブの状態にならなくなりました。 また、親 MDI フォームを閉じようとすると、 何故か MDI 子フォームがひとつずつ閉じるような動きになりました。 ドッキング関係とボタンが複数表示されるように見える現象は確認できませんでした。 回避策を探しつつ、原因を追ってます。 取り急ぎ、現象の結果報告をしました。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||||||||||
|
投稿日時: 2005-10-21 16:50
じゃんぬねっとさん、まいどです。
よかったです。。。って(障害があるのは)良くないですが。
じゃんぬねっとさんのコードでは私の環境でも同様です。
これは元々そういう仕様(.NETの)かと思っておりましたが。 # じゃんぬねっと (C#, VB.NET) # じゃんぬねっと日誌 (じゃんぬのおもちゃ箱) # 拝見しました。 # とても参考になります。さっそく。ブックマークさせて頂きました。 | ||||||||||||||||||||
|
投稿日時: 2005-10-21 17:12
とりあえず、思いついたことを。 最初に、this.Controls.Remove(this.toolBar1)をおこなっても一緒でしょうか。 #まず子から切り離す必要があるんではと思いました。 | ||||||||||||||||||||
|
投稿日時: 2005-10-21 17:23
まどかさん、ありがとうございます。
実はそれはやりましたが、駄目でした。 駄目というのは、やはり、Visible=Trueになったということです。 # 実際には(1)の方法を試したときです。 # そのあとAdd()してますが、Remove()の時点でVisible=Trueになりました。 | ||||||||||||||||||||
|
投稿日時: 2005-10-21 17:24
どうやら、Add メソッド部分で起きてるっぽいです。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||||||||||
|
投稿日時: 2005-10-21 18:23
上記の部分だけですが、MDIの仕様のような気がしてならないです。。。 自分のMDIアプリで試してみます。 |