2010-11-04 38 views
17

Una de las características más adoradas y adoradas de visual studio debe ser el diseñador de formularios.Características ocultas de Visual Studio winforms designer

Crear un diseño de formulario/control de usuario simple por lo general es muy fácil. Establecer propiedades y agregar eventos es fácil.

Configurar la caja de herramientas para usar sus propios controles puede ser un poco más difícil y hacer que aparezca la ToolBoxIcons puede ser un problema. El uso de componentes de terceros por herencia visual puede arrojar del diseñador. Y usar herencia múltiple en designerables puede ser realmente difícil.

¿Cuáles son sus características de diseñador de estudio visual "ocultas" u obvias favoritas?

+0

No podría estar más de acuerdo con ToolBoxBitmap; nunca lo he hecho funcionar, incluso después de probar una docena de "soluciones" diferentes. Empezando a pensar que es algo del mito ... –

+0

Sobre ese toolboxbitmap. Eso solo funciona cuando se configura correctamente y cuando la referencia DLL está configurada en una DLL separada y no en la misma solución. – CodingBarfield

Respuesta

22
  • Mantenga presionado CTRL y arrastre un control para duplicarlo.

NOTA: Tenga cuidado, si su control tiene un controlador de eventos que fue creado por el diseñador , se asociará su de control recién creado con el controlador de eventos , así como el control de edad.

  • Uso del atajo de teclado F7 para pasar de la vista del diseñador a la vista de código, y Shift-F7 para pasar de la vista de código a la vista del diseñador. Lo uso constantemente

  • La ventana "Esquema de documento" es esencial para el uso de diseñador pesado. Esto le permite reordenar los controles en el contorno para llevarlos al frente o enviarlos hacia atrás. Es especialmente útil cuando trabajas con controles de acoplamiento. También puede mover un control secundario a un elemento primario diferente, o sacarlo de un control de contenedor, o mover un elemento primario a un contenedor, etc.

View -> Other Windows -> Document Outline

  • La barra de herramientas "Diseño" es ideal para poniendo cosas para hacer una interfaz de usuario con un aspecto limpio.

View -> Toolbars -> Layout

+5

Shift F7 alterna entre vista de código y vista de diseñador. – CodingBarfield

+1

Document Outline es exactamente lo que estaba buscando y no pude encontrar en ningún otro lado en Googlewebz. – orfdorf

2

Todas las propiedades de los controles de usuario se mostrarán por el diseñador y se rellenarán con los valores predeterminados para el tipo de datos. Agregar el atributo DesignerSerializationVisibility con Hidden como valor no llenará esta propiedad con ningún valor predeterminado.

<DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)> 

Esta es una gran manera de mantener la cantidad de código de diseñador al mínimo. Otra opción es DefaultValue.

<DefaultValue(somevalue)> 

Esto configurará al diseñador para usar el valor dado como valor predeterminado para la selección.

El diseñador anulará los valores del campo de respaldo y los valores del inicializador si no utiliza estos atributos.

Otro que puede ser difícil de encontrar: Menú - Ver - Orden de tabulación

Es posible cambiar el orden de las pestañas haciendo clic en sus campos. Esta opción solo es visible mientras el diseñador está activo.

+0

Otro consejo es configurar CodingBarfield

4

Intento codificar mis propios métodos de controlador de eventos cuando los formularios se inicializan en lugar de dejar que el diseñador se encargue de ellos. Me he dado cuenta de que el diseñador perderá estos eventos de vez en cuando. Al codificar el suyo, asegúrese de que se adhieren.

myButton.Click += new System.EventHandler(this.myButtonClick) 
+1

Puede mi abreviado en una versión .NET más nueva: myButton.Click + = this.myButtonClick – pettys

1

diseñador roto:

estudio visual A veces no se mostrará el modificador de opción/Código Designer para. No he explicado qué causa esto exactamente, pero mezclar proyectos vb.net y C# mientras uso devexpress parece ser una razón.

Mientras se ejecuta Visual Studio, no verá de repente que se pueden diseñar mis formularios/controles de usuario. Cerrar el estudio visual y cambiar el archivo del proyecto generalmente ayuda.

Originalmente el archivo de proyecto contenían

<Compile Include="cboTargetGroupFlights.cs"> 

Cambio que a y volver a abrir el proyecto causó Visual Studio para volver a comprobar todos los formularios/controles de usuario y mostró el diseñador de nuevo.

<Compile Include="cboTargetGroupFlights.cs"> 
    <SubType>Component</SubType> 
</Compile> 

Sabía que puede establecer la vista de código como predeterminada después de hacer doble clic en algo en la vista de la solución. Haga clic con el botón derecho en su archivo y elija Abrir con ... y use el botón Establecer como valores predeterminados.

4

Puede agregar sus propias referencias a UserControls.

La clase de más abajo aquí se llama CenterSquare, y tiene un Diseñador agregado al que se llama CenterSquareSnapLines que proporciona una lista de snapines dentro del control. Si tienes tus propios controles que se vuelven más pequeños que solo sus bordes, ahora puedes agregar tus propios snapines.

public class CenterSquareSnapLines : ControlDesigner 
{ 

    public override System.Collections.IList SnapLines 
    { 
     get 
     { 
      ArrayList snapLines = base.SnapLines as ArrayList; 
      CenterSquare c = this.Control as CenterSquare; 
      if (c != null) 
      { 
       snapLines.Add(new SnapLine(SnapLineType.Left, c.BorderDistance)); 
       snapLines.Add(new SnapLine(SnapLineType.Right, c.Height - c.BorderDistance)); 
       snapLines.Add(new SnapLine(SnapLineType.Top, c.BorderDistance)); 
       snapLines.Add(new SnapLine(SnapLineType.Bottom, c.Width - c.BorderDistance)); 
       snapLines.Add(new SnapLine(SnapLineType.Top, 5)); 
      } 
      else 
      { 
       //Debug message here! 
      } 
      return snapLines; 
     } 
    } 

} 

[Designer(typeof(CenterSquareSnapLines))] 
public partial class CenterSquare : UserControl 
{ 
//implementation goes here 
} 
+0

También vea: http://stackoverflow.com/a/945486/27472 –

4

¿Sabía que en realidad puede depurar el diseñador?

Puede iniciar una única solución dos veces y usar 'Adjuntar para procesar' para depurar un entorno devenv ejecutando los controles de su diseñador. Esto puede ser especialmente útil para depurar problemas de diseñador "extraños" que proporcionan muy poca información de lo contrario.

Utilicé esto para señalar un problema de diseñador a algo remoto que comenzó y no funcionó, desencadenando una excepción no controlada y rompiendo el diseñador. Todo lo que vi en el desigerview fue la caída de algunas clases de ayudantes internos del estudio visual.

7

Cuando el diseñador de proyectos WinForms está abierto en un formulario o control de usuario y tiene controles secundarios anidados, puede mover el foco del control secundario actualmente enfocado a su control principal presionando la tecla Escape. Al presionar la tecla Escape nuevamente se mueve el foco a su elemento principal y así sucesivamente hasta que finalmente llegue a la parte superior.

Cuestiones relacionadas