- PR -

[VB.NET/Windows Application] MDI Containerの使い方について

1
投稿者投稿内容
とぱにゅ
会議室デビュー日: 2004/10/11
投稿数: 8
投稿日時: 2005-04-25 02:45
作成方法はMDI ContainerをTrueにし、子フォームを親フォーム内に作成/追加することで 子フォーム名.Show()で表示させるのは分かったのですが・・・子フォーム名.Hide() で隠し、子フォーム名.Show()で表示。ですが、ALT-F4でお馴染みの右上の赤ペケを押して閉じた場合 子フォーム.Show() を実行するボタンを押しても再起動しないと再表示されないのですが。

何かコード必要なのでしょうか?ちなみに下記がサンプルコードです


Dim Child As New Form2()

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Child.MdiParent = Me
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Child.Show()
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Child.Hide()
End Sub
渋木宏明(ひどり)
ぬし
会議室デビュー日: 2004/01/14
投稿数: 1155
お住まい・勤務地: 東京
投稿日時: 2005-04-25 03:23
引用:

() で隠し、子フォーム名.Show()で表示。ですが、ALT-F4でお馴染みの右上の赤ペケを押して閉じた場合 子フォーム.Show() を実行するボタンを押しても再起動しないと再表示されないのですが。



仕様です。

_________________
// 渋木宏明 (Hiroaki SHIBUKI)
// http://hidori.jp/
// Microsoft MVP for Visual C#
//
// @IT会議室 RSS 配信中: http://hidori.jp/rss/atmarkIT/
とぱにゅ
会議室デビュー日: 2004/10/11
投稿数: 8
投稿日時: 2005-04-25 05:05
引用:

渋木宏明(ひどり)さんの書き込み (2005-04-25 03:23) より:
引用:

() で隠し、子フォーム名.Show()で表示。ですが、ALT-F4でお馴染みの右上の赤ペケを押して閉じた場合 子フォーム.Show() を実行するボタンを押しても再起動しないと再表示されないのですが。



仕様です。





再表示させる方法は無いのですか?
渋木宏明(ひどり)
ぬし
会議室デビュー日: 2004/01/14
投稿数: 1155
お住まい・勤務地: 東京
投稿日時: 2005-04-25 05:25
引用:

再表示させる方法は無いのですか?



無いです。

Closing イベントで Hide() するなど、自分で工夫するほかありません。

_________________
// 渋木宏明 (Hiroaki SHIBUKI)
// http://hidori.jp/
// Microsoft MVP for Visual C#
//
// @IT会議室 RSS 配信中: http://hidori.jp/rss/atmarkIT/
とぱにゅ
会議室デビュー日: 2004/10/11
投稿数: 8
投稿日時: 2005-04-25 07:13
引用:

渋木宏明(ひどり)さんの書き込み (2005-04-25 05:25) より:
引用:

再表示させる方法は無いのですか?



無いです。

Closing イベントで Hide() するなど、自分で工夫するほかありません。





ん〜、マニュアルには赤ペケを押しても閉じないようにできるコード

Private Sub Form2_Closing(略) Handles MyBase.Closing
e.Cancel = True
End Sub

があるのですが、これだと親フォームまで影響がでて Application.Exit() を使用しないと閉じないみたいですね。代わりに Form2 の ControlBox だけを False にすれば初期に表示されたとき 最小化・最大化・閉じる の3つは表示されません。ここまではわかりました。フォームをダブルクリックすれば3つが表示され、元に戻すと赤ペケだけが無効状態になってました。一応これは望んでいた状態ですが・・・

そこで考えたのですが、この ControlBox を無効にせずに赤ペケだけを無効にする方法はありますか?
1

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