项目经理评分
项目经理评分呢,用到了这些知识.
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 }
这样就完事啦.慢慢品吧