C#は、アクションデリゲートメソッドを使用して、ページ間情報の更新の問題を解決します

アクションの委任の使用については、ブログの投稿を参照して
ください。https //blog.csdn.net/qq_39217004/article/details/105465485
プロジェクトの例では、次の問題を解決する必要があります。
学生リストのインターフェースで[編集]をクリックして、学生情報をポップアップ表示します。編集インターフェースで、編集インターフェースの「変更」ボタンをクリックして、学生の情報を正常に変更し、データベースに転送します。同時に、StudentListインターフェースのdatagridviewコントロールの情報が変更された情報に更新されます。ページ間の更新の問題に関与して、私はアクションデリゲートメソッドを使用して解決します
ここに画像の説明を挿入

アイデアは次のとおりです。
最初に、FrmStudentListインターフェイスの関数LoadAllStudentList()は生徒の情報を読み込みます。この関数の関数は、データベースから情報を読み取り、データテーブルテーブルに格納してから、インターフェイスのdatagridviewに表示します。
ページ間での情報の更新の問題を解決するには、次の方法を使用します。つまり
、情報をロードする方法はリストページのデリゲートに割り当てられ、学生番号(変更される)とデリゲートは編集インターフェイスに渡されます。Editインターフェイスが2つの情報を受け取った後、変更が成功した後、リストページのメソッドが再度呼び出されます。つまり、デリゲートが呼び出されます。
ここに画像の説明を挿入

1. StudentListページでデリゲートを定義し、データリストをロードするメソッドをデリゲートに割り当て、同時にそれを変更ページに渡します。

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.ページ定義の委任を変更し、渡された委任をこのページで定義された委任に割り当て、変更が成功した後で委任を呼び出します

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

情報を変更した後、インターフェース
ここに画像の説明を挿入

元の記事を18件公開しました 賞賛されました0 訪問数233

おすすめ

転載: blog.csdn.net/qq_39217004/article/details/105467585