2011-05-25 18 views
6

Me he dado cuenta que en uno de mi forma (limitada a una consulta), cuando hago este código:Form.Dirty es falsa cuando debería ser verdad

Private Sub Form_Dirty(Cancel As Integer) 
    MsgBox Me.Form.Dirty 
End Sub 

Debe aparecer el valor 'verdadero' , porque este es un evento sucio, ¿verdad? Pero en realidad obtengo un 'falso'. ¿Por qué?

+1

La propiedad forma es innecesaria: 'Me.Dirty' es exactamente el mismo cosa como 'Me.Form.Dirty'. Esto se debe a que .Form es la propiedad predeterminada del módulo de clase de un formulario. –

Respuesta

7

Eso es porque el evento sucio es donde puede cancelar el cambio y deshacerlo. Es después del evento sucio que la forma realmente se marca como sucia. La cadena de acontecimientos para un cuadro de texto, por ejemplo, es este

KeyDown> KeyPress> BeforeInsert> Dirty> KeyUp

espero que esto ayude

Cuestiones relacionadas