2011-12-29 21 views
5

Acabo de descargar el WeifenLuo(Dock Panel Suite) y trato de trabajar con eso, pero no pude encontrar una documentación específica sobre cómo usarlo.Uso de WeifenLuo DockPanel Suite

Y he pasado por algunas de las preguntas de SO y finalmente tengo algo para empezar.

Aquí es lo que he hecho: He creado una clase ToolboxWindow como se muestra a continuación:

Public Class ToolboxWindow 
    Inherits WeifenLuo.WinFormsUI.Docking.DockContent 

    Public Sub New() 

    End Sub 
End Class 

y tratando de crear una instancia de esta caja de herramientas de esta manera:

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 

Y el resultado final me muestra de esta manera?

enter image description here

1.How a adjust la size del toolbox.

2. Si tengo form2 con el dock panel ¿Cómo puedo mostrar en los form1

Gracias de antemano!

Respuesta

6

Q1 Cómo ajustar el tamaño de la caja de herramientas.

El contenedor DockPanel tiene una propiedad DockLeftPortion (derecha, inferior y superior también). Esto especifica el ancho del área izquierda como píxeles o una proporción del área disponible. No he visto nada que le permita tomar el tamaño de los controles acoplados.

Q2 Si tengo formulario2 con el panel de muelle, ¿cómo puedo mostrar en el formulario1

Si tiene dos formularios de solicitud de primer nivel, cada uno con un panel de muelle, que pasar el control DockPanel apropiada como primer parámetro al método Show().

¿Es esto lo que quiso decir con Q2?

4

Esta es una publicación anterior, pero mientras busco otra cosa, veo que he encontrado la respuesta justo hoy.


cómo cambiar el tamaño DockForms

Para cambiar el tamaño de las formas, aquí es una manera que le permitirá modificarlos. Look here. Sólo pega esto en el espacio de nombres de su sub principal (pongo la mía en la parte inferior):

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); 
    } 
} 

Y luego, para hacer que funcione, pega esto en la forma principal:

dockPanel.Extender.FloatWindowFactory = new CustomFloatWindowFactory(); 

Cómo mostrar el panel acoplado

para mostrar el panel de acoplamiento en el forma, usted tiene que crear una especie de forma de plantilla, y en su código, donde dice Form, cambie a DockContent, así:

Ahora, en una forma que desea utilizar en el panel de acoplamiento, modificar el código para tener este aspecto (nótese la DockContent como el tipo, en vez que Form):

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

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

luego, para acoplarla, primero declaramos la nueva forma, y ​​luego crearlo. Me gusta este:

//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); 
} 

Finalmente, para mostrar la forma, que acaba de llamar esto desde cualquier lugar:

showMyFormDocked(); 

Todo esto lo supe desde el estudio de los documentos de origen y tratar de reproducirlas.

Cuestiones relacionadas