重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

VB2005ExpressEditionでExcelの作業ウィンドウのような実装をしたいと考えています。
ツールバー等を生かして実装できないかと試みましたが内に自由にコントロールを配置できないため行き詰まっています。

詳細は
この実装を行うフォームはMDIの親フォームである
フォームの左端に実装する
作業ウィンドウのように別の場所に移動できなくても良い
横幅の変更はできるようにしたい
この実装の内には自由にコントロールを配置したい
中に配置したコントロールはこの実装の横幅の変更に追随してほしい
コントロールの自作はできれば避けたい
です。

よろしくお願いします。

A 回答 (3件)

> スプリッターの幅を実行中に変更できるようにする事


実行時に「スプリッターの幅」を変更しても無意味なのでは???

スプリッターの幅を変更しても、
サイズ変更用領域(マウスポインタの形が変わるエリア)の範囲が広がるだけですよね・・・

> パネルの親コンテナをスプリッターにする事
そんな必要は無いと思いますが・・・

> (スプリッターの幅を実行中に変更したときにパネルの幅を追随させたい)

Dockが適切なら、何のコードも書かなくても、パネルのサイズ変更できると思いますけど・・・
#勝手に変更してくれる。

実行時にスプリッターの上にマウスを持っていくと、マウスポインタの形が左右の矢印に変わりませんか?
その状態で、ドラッグすれば、パネルの大きさも追従すると思いますけど・・・
    • good
    • 0
この回答へのお礼

>Dockが適切なら、何のコードも書かなくても、パネルのサイズ変更できると思いますけど・・・
あ。はい。うまくいきました。
ありがとうございます。
なにぶんロジックはできてもコントロールには弱くて・・・
申し訳ないです。

お礼日時:2006/12/26 23:15

> 子ウィンドウが重ならない領域にする方法


コレはどういう機能です?
#Excelの作業ウィンドウにそういう機能がありましたっけ?

> 実行中にドラッグしたときに動かせるようにする方法
これも、どういう機能です?

> PanelにSpliterを配置するはできましたが・・・
Panelに配置しても意味ありません。

> MDIの親ウィンドウににSpliterを配置する。
にすれば、勝手に機能すると思いますが・・・
#当然、Dockはちゃんと設定しなくてはなりませんけど。

> 作業ウィンドウのように別の場所に移動できなくても良い
ってことですから、フローティングの機能じゃないんですよね?

この回答への補足

ごめんなさい。舌足らずになっていました。

>#Excelの作業ウィンドウにそういう機能がありましたっけ?
>Panelに配置しても意味ありません。
子ウィンドウを親ウィンドウの中で最大化したときに作業ウィンドウに相当する部分の下に子ウィンドウが重なってしまうのです。
これはパネルにスプリッターを配置していたためです。
私が正しくない事をしていただけのようです。

>> MDIの親ウィンドウににSpliterを配置する。
>にすれば、勝手に機能すると思いますが・・・
>#当然、Dockはちゃんと設定しなくてはなりませんけど。
> 実行中にドラッグしたときに動かせるようにする方法
この関連の部分の私の記述が完全に混乱してしまっています。
ごめんなさい。

できるようになっていること。
スプリッターを配置する
デザイナの上でスプリッターの幅を変える

したいけれどできていないこと
スプリッターの幅を実行中に変更できるようにする事
パネルの親コンテナをスプリッターにする事(スプリッターの幅を実行中に変更したときにパネルの幅を追随させたい)
です。

よろしくお願いします。

補足日時:2006/12/26 21:29
    • good
    • 0

普通に、Panelコントロール(とSpliterコントロール)を、MDIの親フォームに配置するのでは駄目なんでしょうか?

この回答への補足

MDIの親ウィンドウににSpliterを配置する。
PanelにSpliterを配置するはできましたが・・・
子ウィンドウが重ならない領域にする方法や実行中にドラッグしたときに動かせるようにする方法がわかりません。
詳しくSpliterの使い方の解説をお願いします。

補足日時:2006/12/26 05:44
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!