Winform窗体用对象数组作一个小项目

 首先我咱们看一下需求:咱们要作的是显示员工信息,实现项目经理给员工评分的功能!数组

首先项目经理是评分的人因此没有用,由于咱们本身写,评分的就是咱们本身.因此咱们要作的是先在vs也就是咱们的环境里建一个项目,在建一个Windows窗体应用程序,而后把控件拖好!app

左边是查看员工的信息窗体,右边是给员工评分的窗体;ide

1.咱们如今开始代码部分测试

    咱们首先须要一个辅助类,在辅助类里咱们要作什么呢?咱们要写这些东西。this

        public int id;
        public int age;
        public string name;
        public char sex;
        public int popularitymoods;
        public int score;
        public string appraise;
       3d

这些东西就是一些公有的字段!对象

而后初始化一个对象数组blog

 public static SE[] se = new SE[10];事件

在初始化两条员工信息,以便测试之用
        public static void Insert()
        {
            SE s1 = new SE();
            s1.id = 111;
            s1.age = 26;
            s1.name = "王小毛";
            s1.appraise = "未评价";
            s1.score = 0;
            SE.se[0] = s1;string

            SE s2 = new SE();
            s2.id = 112;
            s2.age = 22;
            s2.name = "周新雨";
            s2.appraise = "未评价";
            s2.score = 0;
            SE.se[1] = s2;

            SE s3 = new SE();
            s3.id = 113;
            s3.age = 30;
            s3.name = "张烨";
            s3.appraise = "未评价";
            s3.score = 0;
            SE.se[2] = s3;
        }

初始化好数据就真的开始进行操做,咱们要在员工的信息窗体loal事件里写这样的一段代码

private void FrmFIrst_Load(object sender, EventArgs e)
        {
            if (SE.se[0] == null) 这是判断数组是空才能够插入数据
            {
                SE.Insert();调用初始化数据的方法
            }
           
           
            lvList.Items.Clear(); 清除ListView的全部项

            遍历对象数据,若是不为空就把对象数组的数据给到lvList,让lvList现实对象数组的全部数据
            for (int i = 0; i < SE.se.Length; i++)
            {
                if (SE.se[i] != null)
                {
                    ListViewItem item = new ListViewItem(SE.se[i].id.ToString());
                    item.SubItems.Add(SE.se[i].name);
                    item.SubItems.Add(SE.se[i].age.ToString());
                    item.SubItems.Add(SE.se[i].appraise);
                    item.SubItems.Add(SE.se[i].score.ToString());
                    lvList.Items.Add(item);
                }
              
            }
         
        }

而后双击lvList的项调用员工评分的窗体

 private void lvList_DoubleClick(object sender, EventArgs e)这是lvList的双击事件
        {

这涉及到窗体传值,我传了三个值,其实能够传一个值。由于是员工对经理的评价.


            FrmJudge fj = new FrmJudge();
            fj.name = lvList.Items[0].SubItems[1].Text;
            fj.appraise = lvList.Items[0].SubItems[3].Text;
            fj.score = lvList.Items[0].SubItems[4].Text;
            this.Hide();
            fj.Show();
        }

而后在员工评分的窗体接收传过来的值;用三个公共变量。

        public string  name;
        public string appraise;
        public string score;

这三个在公共变量以前已经建好,要否则也不可能.出来!

咱们要用窗体上的TextBox接收传过来的值,让他一打开窗体就能看到显示得值.

因此在load事件把值赋给TextBox

private void FrmJudge_Load(object sender, EventArgs e)
        {
            txt1.Text= name ;
            txt2.Text = appraise ;
            txt3.Text=score ;
        }

这是我在取消的按钮写的代码

 private void btn2_Click(object sender, EventArgs e)
        {
            FrmShow fs = new FrmShow();
            this.Hide();
            fs.Show();
        }

意思是只要我一点击取消,就会调用员工的信息窗体而且隐藏员工评分窗体!

增长的按钮,就是让他在对象数组里修改一条数据。而后显示在员工信息窗体!

private void btn1_Click(object sender, EventArgs e)
        {
            for (int i = 0; i < SE.se.Length; i++)遍历数组
            {
                if(SE.se[i]!=null)若是数组不为空
                {
                    if (SE.se[i].name == txt1.Text)而且数组内的元素等于个人txt1d的文本框
                    {

                       我就把他的评价和分数修改成我在文本框里添加的数据
                        SE.se[i].appraise = txt2.Text;
                        SE.se[i].score = Convert.ToInt32(txt3.Text);
                    }
                }               
            }

最后我在调用员工信息窗体,个人数据会从新加载!就会及时更新!
            FrmShow fs = new FrmShow();
            this.Hide();

            fs.Show();

相关文章
相关标签/搜索