- PR -

Windowsアプリの画面について

1
投稿者投稿内容
あー
会議室デビュー日: 2008/05/09
投稿数: 8
投稿日時: 2009-02-18 16:34
現在 VB2005 にて Windows アプリケーションの開発をやっておりますが、
Windows のエクスプローラのように左右が分割されていて
左にメニューの項目をツリー表示して、
右は左の項目をクリックした時に該当する機能の画面が表示されるような
メイン画面を作成したいのですが、コントロールをどう配置すれば
よいのでしょうか?

ToolStripPanel,SplitContainer,ToolStripContainer あたりを
うまく使えば出来ないでしょうか?

どなたかご教授ください。よろしくお願いします。
shimix
ぬし
会議室デビュー日: 2004/08/05
投稿数: 512
お住まい・勤務地: 大分市
投稿日時: 2009-02-18 16:49
VB2005は触ったことがありませんが(汗

引用:

あーさんの書き込み (2009-02-18 16:34) より:
ToolStripPanel,SplitContainer,ToolStripContainer あたりを
うまく使えば出来ないでしょうか?


PanelやContainerだけ書かれているということは、問題は「左右に分割したい」という部分だけですか。つまり、その上に載せるコントロールについては問題ない(何を使うか既知)ということでよろしいですか。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2009-02-18 18:30
引用:

あーさんの書き込み (2009-02-18 16:34) より:

ToolStripPanel,SplitContainer,ToolStripContainer あたりを
うまく使えば出来ないでしょうか?


うまくも何も SplitContainer でいいですよね。 勝手に Panel も分かれますから、あとは TreeView を左側の Panel に配置するだけです。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
あー
会議室デビュー日: 2008/05/09
投稿数: 8
投稿日時: 2009-02-18 18:57
shimix さま、じゃんぬねっと さま、ご回答ありがとうございます。

引用:

PanelやContainerだけ書かれているということは、問題は「左右に分割したい」という部分だけですか。つまり、その上に載せるコントロールについては問題ない(何を使うか既知)ということでよろしいですか。


右には作成済の Form や UserControl を載せたいと思っております。

引用:

うまくも何も SplitContainer でいいですよね。 勝手に Panel も分かれますから、あとは TreeView を左側の Panel に配置するだけです。


右の Panel に Form も埋め込めるということでしょうか。
調べてみます。
Azulean
大ベテラン
会議室デビュー日: 2008/01/04
投稿数: 123
お住まい・勤務地: 大阪府
投稿日時: 2009-02-18 23:05
引用:

あーさんの書き込み (2009-02-18 18:57) より:

引用:

うまくも何も SplitContainer でいいですよね。 勝手に Panel も分かれますから、あとは TreeView を左側の Panel に配置するだけです。


右の Panel に Form も埋め込めるということでしょうか。
調べてみます。


無理すればできなくもないかもしれませんが、その場合はUserControlとして作った方が良いかと思います。

ところで、Formを右側のPanelに表示するといっても、Formの中身だけですよね?
タイトルバーとか×ボタンとかはいりませんよね?
# もし必要なら、MDI親フォームみたいなソリューションですかね。
あー
会議室デビュー日: 2008/05/09
投稿数: 8
投稿日時: 2009-02-19 11:33
Azulean さん、ご回答ありがとうございます。

ちなみに右の Panel に Form を埋め込む方法はわかりました。
一般的な方法なのかがわかりませんが。。

コード:
Dim objForm As New Windows.Forms.Form = Nothing 
objForm = New Form1 

Dim objPanel As Windows.Forms.SplitterPanel = Me.SplitContainer.Panel2 
objPanel.Controls.Clear() 
objForm.TopLevel = False 
objPanel.Controls.Add(objForm) 
objForm.BringToFront()
objForm.Show()
objForm.Dock = DockStyle.Fill




引用:

無理すればできなくもないかもしれませんが、その場合はUserControlとして作った方が良いかと思います。

ところで、Formを右側のPanelに表示するといっても、Formの中身だけですよね?
タイトルバーとか×ボタンとかはいりませんよね?



確かに Form のタイトルバーとか×ボタンはいらない時があるので、
UserControl として作った方が良いと思いますが、
右に表示させるものは、検索用にダイアログとして表示させたり、
ある程度自由に使いまわせたらいいのですが、
そういう時は UserControl として作った方がよいのでしょうか?
テッテ
ベテラン
会議室デビュー日: 2008/03/16
投稿数: 91
投稿日時: 2009-02-19 12:14
その UserControl を Dock = Fill で追加したフォームを作れば、フォームとしても使うことができます。
1

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