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

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

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

フォームの右端のみサイズ変更可にしたい


(過去ログ 3 を表示中)

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

■2972 / inTopicNo.1)  フォームの右端のみサイズ変更可にしたい
  
□投稿者/ ゆうじ 二等兵(4回)-(2006/03/28(Tue) 10:40:00)

分類:[VB.NET] 


分類:[VB.NET] 

またまたお世話になります。ゆうじです。

MDIアプリケーションの開発で困っています。
よろしくお願いいたします。

開発環境は、以下のとおりです。
 WinXP Pro SP2
 VS2005 VB.NET


【やりたいことの前提条件】
以下のMDIアプリケーションを作成しています。
1.画面構成は以下とする。
┌───────┐
│メニューバー │
├───┬───┤
│ メ │ 各 │
│ ニ │ 機 │
│ ュ │ 能 │
│ | │   │
└───┴───┘

エクスプローラーのように
MDI親フォームの画面上部にメニューバーを配置し、
メニュー子フォームと各機能子フォームを表示します。
(MDIにした理由は、このMDI親フォームを資産とし、
各機能子フォームと切り離すためです。)


【やりたいこと】
エクスプローラーのようにメニュー子フォームの右端のみ
サイズ調整できるようにし、
メニュー子フォームのリサイズイベントにより、
各機能子フォームのサイズ調整を行う。
(メニュー子フォームのDock=Leftに設定している。)
理由:各機能子フォームのDock=Fillにすると、
リサイズ時に画面がチカチカするため。
(この件も回避方法や、なぜなるのかをご存知ならば、ご教示ください。)


【試してみたこと】
メニュー子フォームの移動を不可にするのは、
下記のサイトを参考にし、実現できました。

じゃんぬさんのHP「じゃんぬのC#、VB.NET」の
「フォームを移動できないようにする」
http://jeanne.wankuma.com/tips/form/moveable.html
(VB.NETで「Moveable」プロパティがないのを知ったときは、
かなりあせりました。本当に助かりました。)

ここで、SC_SIZEを条件に追加してみると、完全にリサイズできなくなりました。
(当たり前ですが。。。)


【ご教示いただきたいこと】
子フォームの右端のみサイズ変更可にできる方法を心当たりのある方、
ご教示お願いします。
よろしくお願いいたします。



0
引用返信 編集キー/
■2973 / inTopicNo.2)  Re[1]: フォームの右端のみサイズ変更可にしたい
□投稿者/ まどか 曹長(98回)-(2006/03/28(Tue) 13:41:32)

分類:[VB.NET] 

メニューの右側にSplitterを貼り付けるとか。


ご提示の方法があまりよい方法とは思えませんので代替案です。

メニューをユーザーコントロールで作成して、それとその右側にSplitterを貼り付ける。
長所:MDIクライアント領域が通常と変わらない。リサイズの実装無し。
短所:Splitterが将来なくなる可能性がある。>現状互換性のために存在


0
引用返信 編集キー/
■2975 / inTopicNo.3)  Re[2]: フォームの右端のみサイズ変更可にしたい
□投稿者/ ゆうじ 二等兵(5回)-(2006/03/28(Tue) 17:10:11)

分類:[VB.NET] 

お世話になります。ゆうじです。
まどかさんありがとうございます。

> メニューをユーザーコントロールで作成して、それとその右側にSplitterを貼り付ける。
> 長所:MDIクライアント領域が通常と変わらない。リサイズの実装無し。
> 短所:Splitterが将来なくなる可能性がある。>現状互換性のために存在
頂いた代替案のとおりメニューをユーザーコントロールで作成してみました。
作成したユーザーコントロールの右端にSplitterを貼り付けましたら、
マウスポインタが可変っぽくなるのですが、
右端のサイズを可変に出来ませんでした。
何かのイベントでサイズ変更するコードを書くのでしょうか?
恥ずかしい話ですが、Splitterコントロールを使うのも初めてで、
ヘルプを見ても良くわかりませんでした。
心当たりがありましたら、ご教示ください。
よろしくお願いいたします。




0
引用返信 編集キー/
■2977 / inTopicNo.4)  Re[3]: フォームの右端のみサイズ変更可にしたい
□投稿者/ まどか 曹長(99回)-(2006/03/28(Tue) 18:01:21)

分類:[VB.NET] 

> 作成したユーザーコントロールの右端にSplitterを貼り付けましたら、
> マウスポインタが可変っぽくなるのですが、
> 右端のサイズを可変に出来ませんでした。

うーん、もしかしてユーザーコントロールの中に貼ってますか?
MDI親フォームのクライアント領域にそれぞれを貼ってますか?

> 何かのイベントでサイズ変更するコードを書くのでしょうか?

書かなくていいはずです。


0
引用返信 編集キー/
■2979 / inTopicNo.5)  Re[4]: フォームの右端のみサイズ変更可にしたい
□投稿者/ ゆうじ 二等兵(6回)-(2006/03/28(Tue) 18:22:47)

分類:[VB.NET] 

お世話になります。ゆうじです。
まどかさんありがとうございます。

解決しました!!!

> うーん、もしかしてユーザーコントロールの中に貼ってますか?
> MDI親フォームのクライアント領域にそれぞれを貼ってますか?
申し訳ありません。御察しのとおりユーザーコントロールの中に貼ってました。
MDI親フォームのクライアント領域のコントロールの右に貼ると
期待通りの動きをしました。
すばらしいです!!涙が出そうです。
こんな便利なものがあるんですね。

まどかさん本当にありがとうございました。


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


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

このトピックに書きこむ

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

管理者用

- Child Tree -