Lo que hago es tener un panel en sus diferentes puntos de vista serán sentarse en el formulario principal. luego crea controles de usuario para tus diferentes vistas.
Entonces cuando quiero cambiar entre a'view' de acoplarlo al panel en el formulario principal .. código parece un poco a esto.
i preffer esto porque se puede reusar sus puntos de vista, como si quiere abrir una vista en una pestaña que se puede acoplar a sus controles de usuario dentro de las páginas de la ficha .. o incluso heredar de TabPage en lugar de control de usuario para hacer las cosas un poco más genérico
public partial class MainForm : Form
{
public enum FormViews
{
A, B
}
private MyViewA viewA; //user control with view a on it
private MyViewB viewB; //user control with view b on it
private FormViews _formView;
public FormViews FormView
{
get
{
return _formView;
}
set
{
_formView = value;
OnFormViewChanged(_formView);
}
}
protected virtual void OnFormViewChanged(FormViews view)
{
//contentPanel is just a System.Windows.Forms.Panel docked to fill the form
switch (view)
{
case FormViews.A:
if (viewA != null) viewA = new MyViewA();
//extension method, you could use a static function.
this.contentPanel.DockControl(viewA);
break;
case FormViews.B:
if (viewB != null) viewB = new MyViewB();
this.contentPanel.DockControl(viewB);
break;
}
}
public MainForm()
{
InitializeComponent();
FormView = FormViews.A; //simply change views like this
}
}
public static class PanelExtensions
{
public static void DockControl(this Panel thisControl, Control controlToDock)
{
thisControl.Controls.Clear();
thisControl.Controls.Add(controlToDock);
controlToDock.Dock = DockStyle.Fill;
}
}
Si el tabcontrol es 'llenar' atracado dentro de otro contenedor, y si cambia el tamaño de ese contenedor, la tarjeta de registro ya no llenan los muelles al contenedor principal si se utiliza el código de seguridad. Solo para tu información. Gracias – SomethingBetter