委托:就是方法的指针
=======================================主窗体
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using MyDelegate.Stu; namespace MyDelegate { //声明委托(用于显示数据) public delegate void del_StuShow(); //声明委托(用于添加数据) public delegate void del_StuAdd(string stuname, int stuage, string stusex); public partial class ForMain : Form { List<Student> stuList = new List<Student>();//声明一个泛型 public ForMain() { InitializeComponent(); StuShow();//显示 } /// <summary> /// 显示列表 /// </summary> public void StuShow() { ShowList.Items.Clear(); for (int i = 0; i < stuList .Count ; i++) { ListViewItem lvi = new ListViewItem(stuList[i].StuName); lvi.SubItems.Add(stuList[i].StuAge.ToString()); lvi.SubItems.Add(stuList[i].StuSex); ShowList.Items.Add(lvi); } } /// <summary> /// 添加列表 /// </summary> /// <param name="stuname"></param> /// <param name="stuage"></param> /// <param name="stusex"></param> public void StuAdd(string stuname, int stuage, string stusex) { Student s = new Student(stuname, stuage, stusex); stuList.Add(s); } /// <summary> /// 添加数据 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void butAdd_Click(object sender, EventArgs e) { AddStudent stu = new AddStudent(); stu.MyStudent_Show = StuShow; stu.MyStudent_Add = StuAdd; stu.ShowDialog(); } } }
=======================================添加数据窗体
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace MyDelegate { public partial class AddStudent : Form { public del_StuShow MyStudent_Show { get; set; } public del_StuAdd MyStudent_Add { get; set; } public AddStudent() { InitializeComponent(); } private void butAdd_Click(object sender, EventArgs e) { MyStudent_Add(txtName.Text, Convert.ToInt32(txtAge.Text), txtSex.Text); MyStudent_Show(); this.Close(); } } }
=======================================Student类
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace MyDelegate.Stu { public class Student { public Student(string _name,int _age,string _sex) { this.StuName = _name; this.StuAge = _age; this.StuSex = _sex; } public string StuName { set; get; }//姓名 public int StuAge { set; get; }//年龄 public string StuSex { set; get; }//性别 } }
转载于:https://blog.51cto.com/962410314/1403768