Uso de Windows Forms Quería colocar la ventana en coords específicos. Pensé que se puede hacer de una manera simple, pero a raíz de código no funciona en absoluto:Posicionamiento de ventana C#
public Form1()
{
InitializeComponent();
this.Top = 0;
this.Left = 0;
}
Sin embargo, cuando sólo obtener un identificador para esa ventana, que funciona bien:
public Form1()
{
InitializeComponent();
IntPtr hwnd = this.Handle;
this.Top = 0;
this.Left = 0;
}
Usted puedo ver que no estoy trabajando con ese puntero en absoluto. Encontré en la declaración siguiente de MSDN:
El valor de la propiedad Manejar es un HWND de Windows. Si todavía no se ha creado el identificador , al hacer referencia a esta propiedad se forzará el identificador para crearse.
¿Significa que solo podemos establecer la posición de la ventana DESPUÉS de la creación de su asa? ¿Los setters Top/Left usan este mango internamente? Gracias por la aclaración.
No responde su pregunta, pero puede anular el método 'OnHandleCreated' para evitar la llamada a' this.Handle'. Estoy de acuerdo en que es extraño que 'this.Handle' aparentemente busque y cree el identificador subyacente, mientras que otras propiedades que dependen del manejador subyacente no lo hacen. –
¿Intentó colocarlos en el diseñador? –
Sé que puedo solucionarlo de muchas maneras. Solo quería saber por qué se comporta de esta manera porque en otros marcos (Qt, wxWidgets, MFC ...) puede establecer la posición de su ventana directamente durante la construcción de la ventana. – Fremen