2011-12-29 111 views
5

私はWeifenLuo(Dock Panel Suite)をダウンロードしましたが、それを使用しようとしましたが、使用方法に関する特定のドキュメントが見つかりませんでした。WeifenLuo DockPanel Suiteを使用

私はSOの質問のいくつかを通過し、最終的に何かを始めました。ここで

は、私がやっていることです: 、以下に示すように、私はToolboxWindowクラスを作成しました:

Public Class ToolboxWindow 
    Inherits WeifenLuo.WinFormsUI.Docking.DockContent 

    Public Sub New() 

    End Sub 
End Class 

そして、このような方法でこのツールボックスのインスタンスを作成しようとする:

Public Class Form1 
    Private toolboxWindow As ToolboxWindow 

    Public Sub New() 
     Me.InitializeComponent() 

     'Create new ToolboxWindow 
     toolboxWindow = New ToolboxWindow() 
    End Sub 

    Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load 
     'Show it 
     toolboxWindow.Show(DockPanel1, DockState.DockLeft) 
    End Sub 
End Class 

そして、最終結果は私にこのように表示されますか? toolboxadjustsize

enter image description here

1.How。私はdock panelform2を持っている2.Ifは

は、どのように私は事前にform1

おかげで示してください!

答えて

6

Q1ツールボックスのサイズを調整する方法。

DockPanelコンテナには、DockLeftPortionプロパティ(右、下、上)もあります。これは、左領域の幅をピクセルまたは使用可能領域の割合として指定します。 私はそれがドッキングされたコントロールのサイズを取ることができる何かを見たことがありません。

Q2私はドックパネルでのForm2を持っている場合はどのように私はあなたが2つのトップレベルのアプリケーションフォームドックパネルでそれぞれを持っている場合は、あなたが最初のパラメータとして、適切なdockpanel制御を渡すForm1の

に表示します方法はShow()です。

これはQ2の意味ですか?

4

これは古い投稿ですが、何か他のものを探しているうちに、私は今日、答えを見つけたことがわかります。フォームのサイズを変更するにはDockForms

のサイズを変更する方法


は、ここにあなたがそれらを変更できるようになる方法です。 Look here。 ちょうどあなたのメインサブ(私は一番下に地雷を置く)の名前空間にこれを貼り付けます。

public class CustomFloatWindow : FloatWindow { 
    public CustomFloatWindow(DockPanel dockPanel, DockPane pane) 
     : base(dockPanel, pane) { 
      FormBorderStyle = FormBorderStyle.Sizable; 
      MaximizeBox = false; 
      MinimizeBox = false; 
          Width = 50; 
    } 

    public CustomFloatWindow(DockPanel dockPanel, DockPane pane, Rectangle bounds) 
     : base(dockPanel, pane, bounds) { 
     FormBorderStyle = FormBorderStyle.Sizable; 
     MaximizeBox = false; 
     MinimizeBox = false; 
        Width = 50; 
    } 
} 

public class CustomFloatWindowFactory : DockPanelExtender.IFloatWindowFactory { 
    public FloatWindow CreateFloatWindow(DockPanel dockPanel, DockPane pane, Rectangle bounds) { 
     return new CustomFloatWindow(dockPanel, pane, bounds); 
    } 

    public FloatWindow CreateFloatWindow(DockPanel dockPanel, DockPane pane) { 
     return new CustomFloatWindow(dockPanel, pane); 
    } 
} 

そして、それを動作させるために、メインフォームにこれを貼り付けます。

dockPanel.Extender.FloatWindowFactory = new CustomFloatWindowFactory(); 

ドックフォームにドッキングパネルを表示するにドッキングパネル

を表示する方法

は、フォームテンプレートのようなものを作成する必要があり、その中にそれはFormを言うのコードは、このように、DockContentのように変更します。

を今、あなたはこのように見えるように、ドッキングパネルに使用したコードを変更したい形で(むしろ、タイプとしてDockContentに気づきます)Formより:

namespace mynamespace{ 
public partial class MyForm: DockContent { 
    public dockform_MyForm() { 
     InitializeComponent(); 
    } 

    private void MyForm_Load(object sender, EventArgs e) { 
    } 
} 
} 

次に、それをドッキングするには、まずそれを作成し、その後、新しいフォームを宣言します。私はこれが好き:

//in your form main sub: 
private dockform_MyForm dform_MyForm = new MyForm(); 

//now, somewhere in your form's class, put this: 
public void showMyFormDocked() { 
    dform_MyForm = new MyForm(); 
    dform_MyForm.Show(dockPanel); 
} 

最後に、フォームを表示するために、あなただけのどこからこれを呼び出す:

showMyFormDocked(); 

私はソースのドキュメントを検討し、それらを再現しようとしているから、このすべてを学びました。

関連する問題