2010-01-14 8 views
7

He añadido un evento de cambio de tamaño para una de mis widgets, que se parece a esto:Evento de cambio de tamaño de .NET: ¿Obtiene el tamaño antiguo?

void glControl_Resize(object sender, EventArgs e) { 

¿Hay alguna manera de obtener el tamaño del widget de edad (antes de redimensionar)? Tal vez puedo lanzar e a algo que me dará más información? ¿O debería guardarlo durante ese evento?

+0

Si desea un evento ** ** antes del cambio de tamaño se puede hacer a través de Windows anulación 'WndProc' y coger el mensaje correcto. No estoy seguro de qué exactamente. Pero es la única forma de obtener un ** antes de cambiar el tamaño **. – n4pgamer

Respuesta

12

Sí, solo el seguimiento del viejo tamaño en un campo de clase es la solución más simple. Por ejemplo:

Size mOldSize; 

private void glControl_Resize(object sender, EventArgs e) { 
    if (mOldSize != Size.Empty && mOldSize != glControl.Size) { 
    // do something... 
    } 
    mOldSize = glControl.Size; 
} 
2

Por convenio, debe agregar un evento OnResizing, que se dispara justo cuando está a punto de cambiar, pero que no ha cambiado, y luego activa el OnResize después de haber sido redimensionado. Obtendrá el valor anterior de su EventArg en el evento OnResizing.

Editar:

¿Va a crear su propio evento o disparando una de un control incluido?

Si está haciendo su propio evento, puede derivar de EventArg y hacer algo como ResizeEventArg que incluye el tamaño de lo que desea.

Usaría el ResizeEventArg para los eventos Resize y OnResizing, y aún seguiré lo que dije anteriormente.

O bien, si sabe qué tipo de control es, puede convertir el Object sender en el tipo y luego leer la propiedad.

+0

No estoy creando mi propio evento. Y no tiene un evento 'OnResizing'? Nada parece tener un evento 'OnResizing'? Veo un 'ResizeBegin' en mi formulario principal, pero este es un' Tao.Platform.Windows.SimpleOpenGlControl' que tampoco parece tener. Supongo que estoy snookered. Gracias de cualquier manera. Bueno para referencia futura. – mpen

Cuestiones relacionadas