今天闲来无事做了一个小项目:
经理评分系统
来看看我是怎么做的
首先创建一个类:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Frmshow { class SE { //在这个类中声明四个变量; public string name; public int age; public string pj; public int pf; public int id; } }
//这都很简单
SE[] se = new SE[3];
private void Form1_Load(object sender, EventArgs e)
{
//向数组中添加三条数据
SE a1= new SE();
a1.id = 111;
a1.name = "王小明";
a1.age = 26;
a1.pj = "未评价";
a1.pf = 0;
se[0] = a1;
SE a2 = new SE();
a2.id = 112;
a2.name = "周新宇";
a2.age = 22;
a2.pj = "未评价";
a2.pf = 0;
se[1] = a2;
SE a3 = new SE();
a3.id = 113;
a3.name = "张华";
a3.age = 30;
a3.pj = "未评价";
a3.pf = 0;
se[2] = a3;
// 遍历对象数据,如果不为空就把对象数组的数据给到lvList,让lvList现实对象数组的所有数据
for (int i = 0; i < se.Length; i++)
{
//通过listviewitem绑定数据
ListViewItem item = new ListViewItem(se[i].id.ToString());
item.SubItems.Add(se[i].name);
item.SubItems.Add(se[i].age.ToString());//这是个类型转换,把它转换成string类型。
item.SubItems.Add(se[i].pj);
item.SubItems.Add(se[i].pf.ToString());
listView1.Items.Add(item);
![](https://images2015.cnblogs.com/blog/1004898/201608/1004898-20160826180143491-2003354867.png)
}
}
private void listView1_MouseDoubleClick(object sender, MouseEventArgs e)
{
//双击list的事件调用评分窗体
FrmJuudge a = new FrmJuudge();
ListViewItem selectRow = listView1.SelectedItems[0];
//直接将 ListViewItem 的所有项的集合传给另一个已经声明好的空的 ListViewItem。
//本来可以直接把三个值传给评分窗体,但用这种方法比较麻烦,所有用了上面的方法。
//a.pj = listView1.SelectedItems[0].SubItems[3].Text;
//a.pf = listView1.SelectedItems[0].SubItems[2].Text;
a.item = selectRow;
a.Show();
}
打开第二个窗体
public ListViewItem item;//将ListViewItem 变成公共的,这样就可以把窗体Form1的每一项的值给传递过来。
//写在load事件里
private void FrmJuudge_Load(object sender, EventArgs e)
{
//让ListViewItem item的每一项的值赋给 textBox,这样就能让窗体FrmJuudge的显示出来
//但是从ListViewItem提到的不是内存中的值,而是从 ListViewItem这个集里提取,但它不是真实的值。
textBox1.Text = item.SubItems[1].Text;
textBox2.Text = item.SubItems[3].Text;
textBox3.Text = item.SubItems[4].Text;
}
//在保存按钮中。
private void button1_Click(object sender, EventArgs e)
{
//这里 textBox已经得到了传来的值这些值都是来自ListViewItem item该项所有子项的集合,所以说如果改变textBox里的值也就相当于改变了 ListViewItem,集合里的数据,但原始内存中的值并没改变。
item.SubItems[1].Text = textBox1.Text;
item.SubItems[3].Text = textBox2.Text;
item.SubItems[4].Text = textBox3.Text;
}
private void button2_Click(object sender, EventArgs e)
{
//取消按钮,关闭所有窗体
Application.Exit();
// this.Close();
}