項目經理評分呢,用到了這些知識.
1.怎麼進行方法調用? 2.值類型和應用類型的使用 3.對象數組 4.窗體間傳遞數據
窗體如下:

當你運行員工列表的窗體時,數據會自動在窗體上.
當你雙擊某一個員工的信息時,彈出評分窗體

評分窗體,你可以填數據.當你按評分按鈕時,數據會在員工列表窗體上更新.
實現的主要思路:
1.創建SE類
屬性:
1 public class SE
2 {
3 private string assess;
4
5 public string Assess
6 {
7 get { return assess; }
8 set { assess = value; }
9 }
10 private int score;
11
12 public int Score
13 {
14 get { return score; }
15 set { score = value; }
16 }
17
18 public int Id { get; set; }
19 public string Name { get; set; }
20 public int Age { get; set; }
21
22 }
2.創建PM類
1 public class PM
2 {
3 //assess:評估
4 public void Judge(SE se,string assess,int score) {
5 se.Assess = assess;
6 se.Score = score;
7
8 }
9 }
3.在員工列表窗體的主要代碼
1 public partial class FrmShow : Form
2 {
3 public FrmShow()
4 {
5 InitializeComponent();
6 this.UpdateView();
7 }
8 public SE[] engineers = new SE[3];
9 //綁定數據
10 public void UpdateView() {
11 lvlist.Items.Clear();
12 engineers[0] = new SE();
13 engineers[0].Id = 111;
14 engineers[0].Name = "王小毛";
15 engineers[0].Age = 26;
16 engineers[0].Assess = "未評價";
17 engineers[0].Score = 0;
18 engineers[1] = new SE();
19 engineers[1].Id = 112;
20 engineers[1].Name = "周新雨";
21 engineers[1].Age = 22;
22 engineers[1].Assess = "未評價";
23 engineers[1].Score = 0;
24 engineers[2] = new SE();
25 engineers[2].Id = 113;
26 engineers[2].Name = "張烨";
27 engineers[2].Age = 30;
28 engineers[2].Assess = "未評價";
29 engineers[2].Score = 0;
30 for (int i = 0; i < engineers.Length; i++)
31 {
32 ListViewItem item = new ListViewItem();
33 ListViewItem lv = new ListViewItem(engineers[i].Id.ToString());
34 lv.SubItems.Add(engineers[i].Name);
35 lv.SubItems.Add(engineers[i].Age.ToString());
36 lv.SubItems.Add(engineers[i].Assess);
37 lv.SubItems.Add(engineers[i].Score.ToString());
38 this.lvlist.Items.Add(lv);
39 lvlist.Items.Add(item);
40 }
41 }
42 //雙擊listview控件時,彈出Frmjudege窗體
43 private void lvlist_DoubleClick(object sender, EventArgs e)
44 {
45 //獲取當前選中的SE德爾對象
46 if (this.lvlist.SelectedItems.Count==0)
47 {
48 return;//必須先選中一行
49
50 }
51 int index = 0;
52 for (int i = 0; i < engineers.Length; i++)
53 {
54 if (engineers[i].Id.Equals(this.lvlist.SelectedItems[0].Text.Trim()))
55 {
56 index = i;
57 break;
58 }
59 }
60 //對選中對象評分
61 FrmJudge frm = new FrmJudge(this,index);
62 frm.Show();
63
64 }
4.在評分窗體 的代碼
1 public partial class FrmJudge : Form
2 {
3 public FrmJudge()
4 {
5 InitializeComponent();
6 }
7 //保存父窗體的實例
8 private FrmShow myParent;
9 //要評價的員工對象
10 private SE se;
11 public FrmJudge(FrmShow fparent,int index) {
12 InitializeComponent();
13 this.myParent = fparent;
14 this.se=myParent.engineers[index];
15 }
16 private void FrmJudge_Load(object sender, EventArgs e)
17 {
18 //窗體加載,顯示要評價的員工的姓名和得分
19 this.txtname.Text = se.Name;
20 this.txtmark.Text = se.Assess;
21 this.txtScore.Text = se.Score.ToString();
22 }
23
24 private void btnScore_Click(object sender, EventArgs e)
25 {
26 //se.Score =Convert.ToInt32( txtScore.Text);
27 //se.Assess = txtmark.Text;
28 try
29 {
30 PM pm = new PM();
31 pm.Judge(se, this.txtmark.Text.Trim(), Int32.Parse(this.txtScore.Text.Trim()));
32 this.myParent.UpdateView();//刷新主窗體
33 this.Close();
34 }
35 catch (Exception)
36 {
37 MessageBox.Show("評分失敗!");
38 }
39 }
40 //取消
41 private void btnCancel_Click(object sender, EventArgs e)
42 {
43 this.Close();
44 }
45
46 }
這樣就完事啦.慢慢品吧