Panes

Espacio de nombres: Digi21.Digi3D
Ensamblado: Digi21.DigiNG.Plugin

Añade a la ventana principal de Digi3D.AI paneles acoplables (docking panes: paneles que se colocan en un borde de la ventana o se agrupan en pestañas con otros paneles) cuyo contenido es un formulario de Windows Forms.

public class Panes

La clase no tiene constructores públicos. La instancia se obtiene con Digi3D.Panes.

Métodos

public Pane Add(Form form)
public Pane Add(Form form, Size size)
public Pane Add(Form form, PaneDock initialDock)
public Pane Add(Form form, Size size, PaneDock initialDock)
public Pane Add(Form form, PaneDock initialDock, bool allowClose)
public Pane Add(Form form, Size size, PaneDock initialDock, bool allowClose)

public T Add<T>(Form form, params object[] args) where T : Pane
public T Add<T>(Form form, Size size, params object[] args) where T : Pane
public T Add<T>(Form form, Size size, bool allowClose, params object[] args) where T : Pane
public T Add<T>(Form form, PaneDock initialDock, params object[] args) where T : Pane
public T Add<T>(Form form, Size size, PaneDock initialDock, params object[] args) where T : Pane
public T Add<T>(Form form, PaneDock initialDock, bool allowClose, params object[] args) where T : Pane
public T Add<T>(Form form, Size size, PaneDock initialDock, bool allowClose, params object[] args) where T : Pane

Crea un panel acoplable que contiene form y devuelve el Pane que lo representa.

Parámetro Descripción
form Formulario que se muestra dentro del panel. El título del panel es el valor de form.Text. Asigna FormBorderStyle.None al formulario, como en el ejemplo.
size Tamaño inicial del panel, en píxeles. Si size.Width es 0, o en las sobrecargas sin size, el panel toma el tamaño actual del formulario.
initialDock Borde de la ventana principal donde se acopla el panel, de la enumeración PaneDock. Las sobrecargas sin initialDock usan PaneDock.Right.
allowClose false para que el panel no tenga botón de cerrar y el usuario no pueda cerrarlo. Las sobrecargas sin allowClose usan true.
args Argumentos del constructor de T.

Las sobrecargas genéricas crean el objeto devuelto con Activator.CreateInstance(typeof(T), args): T es una clase derivada de Pane con un constructor público que admite args. Así, la clase derivada puede recibir datos en el constructor y manejar los eventos del panel. El constructor de T se ejecuta antes de que el objeto quede asociado al panel, así que en el constructor las propiedades y los métodos de Pane lanzan ObjectDisposedException. El ejemplo de Pane usa una sobrecarga genérica.

El usuario no puede poner flotante un panel creado con Add: el panel solo se puede acoplar.

Digi3D.AI destruye todos los paneles creados con Add al cerrar un archivo de dibujo y al cerrar la aplicación. Antes de destruir cada panel produce sus eventos Closing y Closed. Después de esa destrucción, las propiedades y los métodos del objeto Pane lanzan ObjectDisposedException.

Excepciones:

Excepción Cuándo
NullReferenceException form es null, o el método no se ejecuta dentro de Digi3D.AI.
MissingMethodException T no tiene un constructor público que admita args.

Ejemplo

Esta orden añade a la izquierda de la ventana principal un panel de 300 × 200 píxeles con una etiqueta, con los colores del tema de Digi3D.AI. El usuario no puede cerrar el panel:

using System.Drawing;
using System.Windows.Forms;
using Digi21.Digi3D;
using Digi21.DigiNG.Plugin.Command;

namespace Ejemplos;

[Command(Name = "PANEL_SALUDO")]
public class PanelSaludo : Command
{
    public PanelSaludo()
    {
        Initialize += (sender, e) =>
        {
            var formulario = new Form
            {
                Text = "Saludo",
                FormBorderStyle = FormBorderStyle.None,
                BackColor = Digi3D.BackgroundColor,
                ForeColor = Digi3D.ForegroundColor,
            };
            formulario.Controls.Add(new Label
            {
                Text = "Panel añadido por una extensión.",
                Dock = DockStyle.Fill,
            });

            Digi3D.Panes.Add(formulario, new Size(300, 200), PaneDock.Left, false);
            Dispose();
        };
    }
}