C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

MDIフォーム内のフォーム制御


(過去ログ 8 を表示中)

[トピック内 6 記事 (1 - 6 表示)]  << 0 >>

■8273 / inTopicNo.1)  MDIフォーム内のフォーム制御
  
□投稿者/ terada 二等兵(1回)-(2006/11/14(Tue) 21:03:13)

分類:[C#] 


分類:[C#] 

つい最近、VC#.NETを使い始めた初心者なのですが、
技術的にどうしてもわからない事があるため、
質問させていただきます。

MDIフォーム内に、現在2つのフォームがあります。
1つのフォームは、ボタンが1つだけ配置されており、
もう1つのフォームには何も配置されておりません。

このコントロールが配置されていないフォームを
MDIフォーム内のどのフォームよりも常に
手前に表示させつつ、もう1つのフォームに
配置してあるボタンを押したいのです。

この方法だと、モーダル表示はまず使えません。
また、フォームオブジェクトのプロパティである
TopMostをtrueに設定しても、MDIの子フォームに
なった時点で無効化されてしまうようです。

ほんの些細なことでも構いませんので、どなたか
教えていただけないでしょうか?
技術的に不可能であった場合、代案などありましたら
ご教授いただけると幸いです。

以上、よろしくお願い致します。


0
引用返信 編集キー/
■8285 / inTopicNo.2)  Re[1]: MDIフォーム内のフォーム制御
□投稿者/ まどか 大将(284回)-(2006/11/15(Wed) 00:29:45)

分類:[C#] 

技術的なことの前にその2つのフォームがそれぞれどんな役割でどのような操作をしたいかで、回答が変わる可能性があります。
例えば、それによってフォームである必要がなくなるとか。

もっと具体的にいえば、ボタンがメニュー的な役割なら
ToolStipにする、ボタンをPanelに配置してクライアント領域に貼り付ける
など。

本題の前面に関してですが、できるできないはおいといて
MDI子フォームは階層優劣の無い同じレベルという性質のものなので
そういう利用の仕方(設計)をすべきです。

0
引用返信 編集キー/
■8288 / inTopicNo.3)  Re[2]: MDIフォーム内のフォーム制御
□投稿者/ terada 二等兵(2回)-(2006/11/15(Wed) 10:44:21)

分類:[C#] 

> 技術的なことの前にその2つのフォームがそれぞれどんな役割でどのような操作をしたいかで、回答が変わる可能性があります。
> 例えば、それによってフォームである必要がなくなるとか。
> もっと具体的にいえば、ボタンがメニュー的な役割なら
> ToolStipにする、ボタンをPanelに配置してクライアント領域に貼り付ける
> など。
たしかに、機能的に考えてみるとフォームである必然性は、ありませんね。。
やりたいことは、基盤となるフォームがあり、そのフォームに配置されている
コントロール(ボタン等)を、どんな場面でも常に操作できる状態にして
おきたいというものです。

例えば、ある設定を行うためのフォームを基盤のフォーム前面に表示
させたとして、その状態であっても基盤のフォームにあるボタンが、
押せたり、押したとしても設定フォームは常に前面に表示されており、
またタイトルバーをドラッグ&ドロップして、移動させると設定フォームも
基盤フォームと連動して一緒に動いたりするような作りにしたいと
考えていたのです。

設計的には、設定フォームが必要になった段階で、基盤フォーム同様の
機能+設定フォームを掛け合わせたフォームを新たに作成して、場合に
よって切り替えを行えば可能ではあるんですが、スマートではない気が
しましたので、こちらにご質問致しました。


> 本題の前面に関してですが、できるできないはおいといて
> MDI子フォームは階層優劣の無い同じレベルという性質のものなので
> そういう利用の仕方(設計)をすべきです。
なるほど。。MDI子フォームについては学習不足でした。
そういった性質がある以上、MDIフォームによる表現は厳しそうなので、
別の方法で行うことにします。ご回答ありがとうございました。


0
引用返信 編集キー/
■8297 / inTopicNo.4)  Re[3]: MDIフォーム内のフォーム制御
□投稿者/ まどか 大将(285回)-(2006/11/15(Wed) 14:39:02)

分類:[C#] 

>>ToolStipにする、ボタンをPanelに配置してクライアント領域に貼り付ける
>>など。
>
> 例えば、ある設定を行うためのフォームを基盤のフォーム前面に表示
> させたとして、その状態であっても基盤のフォームにあるボタンが、
> 押せたり、

書かれた内容ではメニュー的な感じを受けます。
私が書いたように、その基盤フォームはフォームである必要があるのでしょうか?
Panel(Dock=Left)をクライアント領域(子フォーム表示領域)に貼り付け
そのPanel内にボタンなりを配置(複雑ならユーザーコントロール)するのは
要求仕様とはマッチしませんか?

0
引用返信 編集キー/
■8310 / inTopicNo.5)  Re[4]: MDIフォーム内のフォーム制御
□投稿者/ terada 二等兵(3回)-(2006/11/15(Wed) 18:09:41)

分類:[C#] 

> Panel(Dock=Left)をクライアント領域(子フォーム表示領域)に貼り付け
> そのPanel内にボタンなりを配置(複雑ならユーザーコントロール)するのは
> 要求仕様とはマッチしませんか?
そうですね。よくよく考えると、Panelを使えば、場面場面で表示するPanelを
切り替えたり、非表示にするだけに同じようなことが表現できそうです。
変に難しく考えていました。。申し訳ありません。
大変参考になりました。ご回答ありがとうございました。


0
引用返信 編集キー/
■8312 / inTopicNo.6)  Re[5]: MDIフォーム内のフォーム制御
□投稿者/ terada 二等兵(4回)-(2006/11/15(Wed) 18:12:25)

分類:[C#] 

解決チェックを付け忘れていたので、再投稿致します。
まどかさん、貴重な情報ありがとうございました。

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -