Hola Cecilio,
en cuanto a tu pregunta, si es que te entend bien puedes hacer lo siguiente:
Puedes personalizar (si es que no los has personalizado) los textfield, los checkbox, radioboton etc. cada uno mediante una clase y a cada clase del control le creas una propiedad que le puedes llamar valorguardado cuyo tipo depende del tipo de control si es un textfield es string, si un chechbox es boolean etc.
Creas una clase que le puedes dar nombre que mas te la identifique y dos mtodos
Un mtodo lo puedes llamar guardarvalores u otro nombre y otro mtodo para cambiospendientes u otro nombre, este ultimo mtodo debe retornarte un resultado de tipo boolean, si es true para comprueba que han habido modificaciones con respecto a los valore iniciales y si es false es porque no hay cambios
En el metodo guardarvalores almacenas todos los datos que tiene almacenados inicialmente los controles, al momento de pulsar clic en tu boton editar (u otro boton con que lo asignas) ejecutas tu mtodo guardarvalores y te carga todos los datos en la propiedad valorguardado, si pulsas clic en tu botn nuevo lgicamente sern valores vacos.
Y en tu boton guardar, salir, cancelar etc. ejecutas el mtodo cambiospendientes si es true puedes poner un mensaje si descarta los cambios o no
Metodo guardarvalores(ventana As window)
dim i,j as integer
dim c as Control
j=ventana.ControlCount - 1
For i=0 TO j
c=ventana.control(i)
Select Case c
Case IsA clastextfield ' Aqui va el nombre que les has puesto a tus clase del control
clastextfield(c).valorguardado=clastextfield(c).text
Case IsA clascheckbox
clascheckbox(c).valorguardado=clascheckbox(c).Value
Case IsA clasradioboton
clasradioboton(c).valorguardado=clasradioboton(c).value
' y tus dems clases de controles
End Select
Next
Metodo cambiospendientes(ventana As window) As Boolean
Dim i,j as integer
Dim c as Control
Dim rpta as Boolean
j=ventana.ControlCount - 1
rpta = False
For i=0 TO j
c=ventana.control(i)
Select Case c
Case IsA clastextnum
Case IsA clastextfield
If clastextfield(c).valorguardado<>clastextfield(c).text then
rpta = true
End If
Case IsA clascheckbox
If clascheckbox(c).valorguardado<>clascheckbox(c).value then
rpta = true
End If
Case IsA clasradioboton
If clasradioboton(c).valorguardado<>clascheckbox(c).value then
rpta = true
End If
' tus demas clase de control
End Select
Next
Return rpta
Espero haberte ayudado en algo puedes tomar como referencia lo indicado
Saludos
Raul Juarez Pulache