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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM