zoukankan      html  css  js  c++  java
  • Winform窗体用对象数组做一个小项目

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

    首先项目经理是评分的人所以没有用,因为我们自己写,评分的就是我们自己.所以我们要做的是先在vs也就是我们的环境里建一个项目,在建一个Windows窗体应用程序,然后把控件拖好!

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

    1.我们现在开始代码部分

        我们首先需要一个辅助类,在辅助类里我们要做什么呢?我们要写这些东西。

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

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

    然后初始化一个对象数组

     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;

                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();

  • 相关阅读:
    2558: 游起来吧!超妹!
    2554: 巨巨来袭
    2557: 不如来21玩一局?
    tortoisesvn 本项目的忽略项
    【C语言】随机数随机种子
    【leetcode】按奇偶排序数组
    【leetcode】按奇偶排序数组 II
    【leetcode】根据数字二进制下 1 的数目排序
    【leetcode】合并排序的数组
    【leetcode】稀疏数组搜索
  • 原文地址:https://www.cnblogs.com/wei-91/p/5810061.html
Copyright © 2011-2022 走看看