程序代码:
using System; using System.Collections.Generic; using using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace EmpList { public partial class Emp : Form { //public static Emp parent = null; //声明静态成员,以便在另一个窗体上调用该窗体的子窗体(listView)上的方法 //否则 Emp.cs 的 62行 → lv.Text = emps[i].ID; 会出现 “未将对象 public Emp() { InitializeComponent(); //parent = this; // BindList(); } //可以长度为3的数组存储3个员工的信息 Employee[] emps = new Employee[3]; public void InitData() { emps[0] = new Employee(); emps[0].ID = "001"; emps[0].Name = "张三"; emps[0].Age = 18; emps[1] = new Employee(); emps[1].ID = "002"; emps[1].Name = "李四"; emps[1].Age = 18; emps[2] = new Employee(); emps[2].ID = "003"; emps[2].Name = "王五"; emps[2].Age = 18; } private void Emp_Load(object sender, EventArgs e) { //01.先构造出数据存储到数组中 InitData(); //02.将构造的员工添加到LIstView中 BindList(); } public void BindList() { //清空ListView中的所有项 listView1.Items.Clear(); //如何将数组中的数据绑定到LIstVIew //ListView中每一项都是ListViewItem for (int i = 0; i <emps.Length; i++) { ListViewItem lv = new ListViewItem(); lv.Text = emps[i].ID; //SubItems是每一项的对应的列 // lv.SubItems.Add(emps[i].ID); lv.SubItems.Add(emps[i].Name); lv.SubItems.Add(emps[i].Age.ToString()); lv.SubItems.Add(emps[i].Assess); lv.SubItems.Add(emps[i].Score.ToString()); listView1.Items.Add(lv); } } //对象数组实现窗体间数据的传递 private void listView1_DoubleClick(object sender, EventArgs e) { //如何将Emp窗体中的员工数组中的员工信息读取到GetScore窗体中? //找到当前用户选中的员工 string id= listView1.SelectedItems[0].Text; //必须循环遍历整个数据,将数组中的每个员工的编号与选中的员工编号 //比较,如果一致,则将该员工的信息传递到GetScore中 int index = 0;//定义一个变量保存选中员工在数组中的位置 for (int i = 0; i < emps.Length; i++) { if(emps[i].ID==id) { index = i; break; //return 不能用return } } //获取到了选中的对象 Employee emp = emps[index]; GetScore frm = new GetScore(); frm.emplist = emp; frm.Show(); } private void listView1_SelectedIndexChanged(object sender, EventArgs e) { } } }
授人以渔,不授人以鱼。