Red de conocimiento informático - Problemas con los teléfonos móviles - Cómo implementar simplemente funciones deshacer y rehacer en VB

Cómo implementar simplemente funciones deshacer y rehacer en VB

Lo más simple sin optimización es registrar cada paso de la operación, y luego revertir la operación..., por ejemplo, puedes agregar dos listas (lista1 y lista2) con visible como FALSO

p>

List1 se usa para almacenar las operaciones actuales y list2 se usa para almacenar operaciones históricas.

Cada vez que realiza una operación, por ejemplo, haga clic en etiqueta2 y luego agregue el elemento "etiqueta2" a la lista1

Cuando la lista1 agrega un elemento, la lista2 se copia a la lista1

Cuando desee deshacerlo, elimine el último elemento de la lista1. En este momento, la lista2 permanece sin cambios. Para restaurar, primero determine si list1.listcount es lo mismo que list2.listcount. Si son iguales, no se restaurarán (se le puede pedir que diga que ya es la última operación). Si no son iguales, list1.additem list2.list(list1.listcount)

<. p>Los registros anteriores solo restauran y deshacer. La grabación está asociada con las funciones de restaurar y deshacer. Por ejemplo, puede simplemente inicializar los colores y textos de todas las líneas y luego, siempre que active la función de recuperación de deshacer, si desea restaurar. o deshacer, se ejecutará nuevamente. Registre la información existente en list1 nuevamente. Por ejemplo, si los registros en su lista1 son etiqueta1 etiqueta3 etiqueta4, es equivalente a ejecutar etiqueta1_click etiqueta3_click etiqueta4_click Eso es todo...

Si desea ser más eficiente, puede hacerlo cuando. programación Escriba una programación inversa para cada tarea de ejecución. Por ejemplo, si tiene label1_click, escriba una función que restaure label1_click, como anti_label1. Luego llame a esta función cuando cancele... Por supuesto, aún llama a la original. uno al restaurar esa función. Pero básicamente si no son muchos, el primer método es suficiente... Te ahorra problemas... Jaja... He dicho tantas cosas sin darme cuenta... Jaja... Por supuesto, también puedes usar un matriz para almacenar la operación actual y la operación histórica...