- PR -

子フォームの表示位置

1
投稿者投稿内容
しだっち
会議室デビュー日: 2005/06/27
投稿数: 3
投稿日時: 2005-06-27 11:40
初めまして。
いつも参考にさせていただいております。
とても困っているので、質問させていただきます。

VS.NETでC#を使用しています。

親フォーム(Form1)にパネルを張り、ボタンを複数個配置しています。
各ボタン押下時にそれぞれ別の子フォーム(Form2〜)をWindowsフォームの追加で、
親フォームへ追加します。

(例):button1押下時Form2表示
private void button1_Click(object sender, System.EventArgs e)
{
  Form2 form2 = new Form2();
  form2.MdiParent = this;
  form2.Show();
}

この時、親フォーム(Form1)のコントロールの下に子フォームが
隠れて表示されてしまう場合があります。

子フォームを親フォームへ複数表示させたいため、
参照元記事のように追加した子フォームを親フォームとすることなく、
親フォームのコントロールと重ならないように表示する方法はありますでしょうか??

例えば、子フォームのlocationの設定方法ですとか、子フォームを親フォームに設けた
パネルに表示させる方法ですとか、何かありますでしょうか?

解決方法をご存知の方がいらっしゃいましたら、
お教え願います。

よろしくお願いします。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-06-27 11:57
引用:

親フォームのコントロールと重ならないように表示する方法はありますでしょうか??


Activate してから、BringToFront();



_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
しだっち
会議室デビュー日: 2005/06/27
投稿数: 3
投稿日時: 2005-06-27 13:01
じゃんぬねっとさんありがとうございます。

BringToFront(); を使う事で常に親フォームのコントロールの前に
表示させる事ができました。
勉強になりました。

ただ操作上ではBringToFront();で解決したのですが、
見た目にやはりボタンと子フォームが重なってしまうので、試行錯誤の結果
親フォームにSplitterを配置し、そこへボタンを配置する事を試してみました。
使用方法が誤っているかもしれませんが、この方法で子フォームとボタンが
上下に重なる事がなくなり、子フォームを常にSplitterの右へ
追加していくことができました。

お教えいただき本当にありがとうございました。
また参考にさせていただきます。

じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-06-27 13:54
こんにちは、じゃんぬ です。
ちょっと勘違いしてたっぽいです。

引用:

見た目にやはりボタンと子フォームが重なってしまうので、


これって、MDI 親フォーム Button コントロールがあるということでしたか。
MDI 親フォームはコンテナに徹するか、ToolBar などにしましょう。

引用:

親フォームにSplitterを配置し、そこへボタンを配置する事を試してみました。


もし親フォームを「サイド メニュー」のような扱いであれば、
小フォームにその役割を譲って、それらを Spliter で結んだ方が良いかもしれません。



_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
しだっち
会議室デビュー日: 2005/06/27
投稿数: 3
投稿日時: 2005-06-27 15:01
こんにちは、じゃんぬさん。
再度の書き込みありがとうございます。

説明が下手で申し訳ありません。
おしゃる通り、親フォームのボタンコントロールを「サイドメニュー」のように
実装したいのです。

ボタンコントロール専用の子フォームを作り、そこ(ボタン)から呼び出される
別の子フォームとSpliter で結ぶ方法も試してみたいと思います。

お教えいただきありがとうございました。
大変参考になります。
1

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