C # utiliza el método de delegado de acción para resolver el problema de actualización de información entre páginas

Para el uso de la delegación de Acción, consulte la publicación del blog:
https://blog.csdn.net/qq_39217004/article/details/105465485
En un ejemplo de proyecto, el siguiente problema debe resolverse:
haga clic en "Editar" en la interfaz de la lista de estudiantes para mostrar la información del estudiante En la interfaz de edición, haga clic en el botón "modificar" en la interfaz de edición para modificar con éxito la información del alumno y transferirla a la base de datos. Al mismo tiempo, la información en el control datagridview en la interfaz StudentList se actualiza en la información modificada. Involucrado en el problema de la actualización entre páginas, utilizo el método de delegado de Acción para resolver
Inserte la descripción de la imagen aquí

La idea es la siguiente:
primero, la función LoadAllStudentList () en la interfaz FrmStudentList carga la información del alumno, cuya función es leer información de la base de datos y almacenarla en la tabla de tabla de datos, y luego mostrarla en la vista de cuadrícula de datos de la interfaz.
Para resolver el problema de la actualización de información entre páginas, utilizo el siguiente método: en
términos simples, el método de carga de información se asigna al delegado en la página de la lista, y el número de estudiante (que se va a cambiar) y el delegado se pasan a la interfaz Editar. Después de que la interfaz Editar recibe las dos piezas de información, después de que la modificación se realiza correctamente, se llama nuevamente al método de la página de lista, es decir, se llama a un delegado.
Inserte la descripción de la imagen aquí

1. Defina el delegado en la página Lista de estudiantes, asigne el método de cargar la lista de datos al delegado y páselo a la página de modificación al mismo tiempo

private Action reLoad =null;//在StudentList页面定义委托
reLoad = LoadAllStudentList;//把加载学生列表的方法赋值给委托reLoad
//封装了一个TagObject类,用委托的方法传值,传学号和委托到修改页面
FrmEditStudent frmEditStudent = new FrmEditStudent();
  frmEditStudent.Tag = new TagObject()
  {
     StuId = stuId,
     ReLoad = reLoad
 };
 public class TagObject
{
     public int StuId { get; set; }
     public Action ReLoad { get; set; }
}

2. Modifique la delegación de definición de página, asigne la delegación aprobada a la delegación definida en esta página y llame a la delegación después de que la modificación sea exitosa

private Action reLoad =null;//在Edit页面定义委托
//修改页面定义委托,把传过来的委托赋值给本页面定义的委托
 TagObject tagObject = (TagObject)this.Tag;
 stuId = tagObject.StuId;
 reLoad = tagObject.ReLoad;
//提示修改成功之后,调用委托
MessageBox.Show($"学生:{stuName}信息修改成功", "修改学生信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
reLoad(); //调用

Después de modificar la información, la interfaz
Inserte la descripción de la imagen aquí

Publicado 18 artículos originales · elogiado 0 · visitas 233

Supongo que te gusta

Origin blog.csdn.net/qq_39217004/article/details/105467585
Recomendado
Clasificación