DockPanel Suiteの使い方 その1
DockPanel Suiteを少し触ってみました。
配布サイトでダウンロードできるCookbookは、勿論英語な上に、2005年発行となっていたため、まだ、ちゃんと読んでいません。
とりあえず、
http://www.crystal-creation.com/software/technical-information/library/dockpanel.htm
.NETでDocking Windowを使う - .NET Tips (VB.NET,C#...)
を読みつつ、頑張ってみたのですが・・・。
正直、よく分からないです;-|
今つまっているところは、DockPanelにDocumentStyleというプロパティがあるのですが、それぞれがどういう意味なのかが分かりません。
次の表のような意味なのかなぁ?とは思いますが、確証がなく。
設定値 | 意味(untruth) |
---|---|
Docking MDI | 親フォームを決め、それに付随する形でDockする(初期値) |
Docking Window | フォームに配置した、DockPanel上にDockする |
Docking SDI | フォームに配置した、DockPanel上にSDI形式でDockする |
System MDI | システム標準MDI |
子フォームの配置は次のようなコードで行えます。
using WeifenLuo.WinFormsUI.Docking; ... //子フォームをインスタンス化 ChildForm frm = new ChildForm(); //DockPanelの左に配置し、表示させる frm.show(this.DockPanel1, DockState.DockLeft);
DocumentStyleプロパティがDocking MDI/Docking Windowで、上コードを試しましたが、どちらも同じような動作をしました。
ただ、Docking MDIの場合、配置されたフォームを移動しようとすると、例外が発生してしまいます。
例外の内容は、親フォームでない云々のような内容なのですが、
//子フォームをインスタンス化 ChildForm frm = new ChildForm(); frm.MDIParent = this; frm.show()
は、DockPanelではなく、親フォームにくっ付くのは当然なわけで。
//子フォームをインスタンス化 ChildForm frm = new ChildForm(); frm.MDIParent = this.DockPanel1; //論外 フォームの親はフォーム frm.show()
は、ありえません。
単純にDocking Windowで進めれば良いような気がしますが、とてもモヤモヤします。
そもそも、それぞれプロパティ値のメリット・デメリットが分かっていませんし、その設定値によって、コーディングが変わってくるとなると、ちょっと考えてしまいます。
せめて、Cookbookではなくて、Referenceがあれば・・と思うのですが:-/
探し方が悪いのかな・・・?
追記
Downloadページを、よく見たらReferenceがありました。
Download Pageのリスト一番下にある、DockPanel Suite DocumentationがReferenceだったようです。
→DockPanel Suite - Browse /DockPanel Suite Documentation/1.0 at SourceForge.net
UserManualに目がいって、見落としていました。
これによると、DocumentStyleプロパティは、
Specifies the style for document windows.
MemberName Description DockingMdi Docked in a tabbed manner, MDI integration with the main form. DockingWindow Docked in a tabbed manner, no MDI integration with the main form. DockingSdi Docked in a tabbed manner, no MDI integration with the main form. Hide the tab when there is only one document in the DockPane. SystemMdi System style MDI form.
となっていました。
和訳すると次のようになるのでしょうか。
メンバー名 | 説明 |
---|---|
DockingMdi | タブを用いた、MDI統合がメインフォームにドッキングされます。 |
DockingWindow | タブを用いた、MDIでない統合がメインフォームにドッキングされます。 |
DockingSdi | タブを用いた、MDIでない統合がメインフォームにドッキングされます。ただし、DockPaneにドキュメントが一つしかない場合は、タブを隠します。 |
SystemMdi | システム標準のMDIです。 |
うーん。
説明を見ても、やっぱり、DockingMDIとDockingWindowの違いがピンときません:-