vivo vela sobrevivir puerca para mega festejar descargar años c# drag-and-drop design-time

c# - vela - Tiempo de diseño arrastrar y soltar



la vela puerca festejar para sobrevivir descargar mp3 (1)

¿Hay alguien que tenga algún puntero / enlace / buenos consejos?

Su problema parece ser abordado por el problema de Microsoft Connect. Eventos del mouse consumidos / no generados en diseñadores 2.0 . Sin embargo, este problema es fácil de entender, pero aparentemente la actualización de .NET Framework 1.1 (2003) a 2.0 (2006) implicó un cambio en el comportamiento de arrastrar y soltar, dado que el artículo que mencionas proviene del 2003, esto podría estar relacionado . Específicamente, debe avanzar a la sección Número 2 , cita:

Ahora notará un parpadeo constante al arrastrar el formulario. Esto es parcialmente causado por el nuevo comportamiento de arrastrar y soltar en 2.0.

No puedo profundizar más en esto ahora mismo, pero también podría figurar algo de Personalizar arrastrar y soltar en el Diseñador , que aborda el comportamiento modificado en cuanto a arrastrar y soltar entre Visual Studio versiones 2003 y 2005; Es muy probable que esto esté relacionado y una de las respuestas aceptadas hace referencia específica al problema de Microsoft Connect anterior, además de que ofrece más pistas sobre posibles soluciones.

Actualmente estoy trabajando en un proyecto en el que mi función es diseñar una superficie de diseño donde el usuario final pueda agregar / eliminar / mover controles en tiempo de ejecución.

Seguí este tutorial "Hosting Windows Forms Designers, por Tim Dawson" , y casi he implementado todas las características que necesito.

Breve historia para aquellos que no quieren leer el tutorial: Implementé IDesignerHost , IContainer , ISelectionService , IToolboxService y alguna otra interfaz, para crear mi superficie de diseño. No System.ComponentModel.Design.DesignSurface ya en el marco, principalmente porque necesito una superficie de diseño realmente personalizada.

Pregunta:

Quiero permitir que el usuario arrastre y suelte nuevo Control desde IToolboxService a IDesignerHost/IContainer . En este tutorial, haga clic en un Control en la caja de herramientas, haga clic en la superficie de diseño para agregar el control.

Lo que he encontrado:

  • Hay una característica incorporada que automágicamente arrastra y suelta de IToolboxService a System.ComponentModel.Design.DesignSurface pero claramente no funciona si implementa IDesignerHost de nada.
  • Cuando utiliza el método Control.DoDragDrop(ToolboxItem) , para iniciar una Control.DoDragDrop(ToolboxItem) arrastrar y soltar:

    1. IToolboxService.SerializeToolboxItem(ToolboxItem) se llama para serializar el elemento
    2. IToolboxService.IsToolboxItem(object) y
      Se llama a IToolboxService.IsSupported(object) para evaluar si el
      se puede dejar caer ToolboxItem serializado en la superficie de diseño
    3. Cuando suelta el control: IToolboxService.DeserializeToolboxItem(object serializedObject) es llamado por la superficie de diseño para deserializar el controldropped.
  • Se llama a IToolboxService.SetCursor() para saber si se define un cursor personalizado o si se deja el cursor estándar de Windows.

Problema:

Implementé todos los mencionados anteriormente, en "Lo que he encontrado", pero el método de arrastrar y soltar tiene errores:

  • Arrastro, todo está bien, pero al pasar el cursor sobre la superficie de diseño, mi cursor parpadea un poco entre el cursor estándar y el estilo " DragDropEffects.Copy ".
  • Cuando dejo caer, no pasa nada, y cuando mi cursor sale de la superficie de diseño (después de que caí), entonces el nuevo Control se crea y se agrega donde lo dejé caer.

¿Alguien ha intentado alguna vez hacer lo que estoy haciendo? De ser así, ¿cómo lo ha logrado? ¿Hay alguien que tenga algún puntero / enlace / buenos consejos?

Gracias =)