0
点赞
收藏
分享

微信扫一扫

window窗体和c#语言

booksmg2014 2022-04-05 阅读 38

先看窗体设计图,第一个是JobForm.cs,第二个是FrmCodeExe.cs,第三个是FrmTestExe.cs

 接下来,帮大家分析一下下面的代码。首先创建了3个窗体和5个类。5个类可以分为两部分,第一部分是员工部分,有两个类,一个是Employee类(父类),另一个是SE类(子类),SE继承了Employee类;第二部分是工作部分,有三个类,第一个是Job类(父类),另一些是CodeJob类和TestJob类(子类),子类继承了父类。

其次就是功能方面,主要分为三个方面吧 

1:将数据和数据网格视图控件绑定起,来(datagridview),主要通过DataSource属性来完成,显示在控件中 

2:在Datagridview控件中设置一个右键快捷菜单,菜单中主要有两个功能,分别是执行和完成情况,当你点击执行时,先获得当前行的索引,在通过索引来获得List泛型集合中的对象,从而调用相应的Execute()方法Execute方法中是显示相应的窗体,分别是编码窗体和测试窗体,来填写相应的值到文本框中

3最后一个功能就是快捷菜单的完成情况,当你点击完成情况时,先获得当前行的索引,在通过索引来获得List泛型集合中的对象,从而调用相应的Show()方法,Show()方法展示相应工作的完成进度,以消息框(MessageBox)的形式展现

大家如果还有什么不懂,下面还有注释帮助你理解,多看几遍就差不多就OK了

下面还会写一些有关java和网页的相关内容

如果觉得还行的话,就帮我点点关注吧!

 

public partial class JobFrm : Form
    {
        Employee empl;   //定义员工对象
        CodeJob code1 = new CodeJob("编码", "编码", "实现购物车模块");
        CodeJob code2 = new CodeJob("编码", "编码基类", "完成项目基类编码");
        TestJob test1 = new TestJob("测试", "压力测试", "测试项目已实现模块");
        public JobFrm()
        {
            InitializeComponent();
            Init();
            UpdateJob();
            this.gbJobs.Text = empl.Name;     //重点,在分组框上显示是哪一个员工的工作列表
        }

        private void JobFrm_Load(object sender, EventArgs e)
        {

        }
        //初始化某员工工作列表
        public void Init()
        {
            List<Job> jobList = new List<Job>();
           
            jobList.Add(code1);
            jobList.Add(code2);
            jobList.Add(test1);
            //实例化员工对象 ,程序员对象
            empl = new SE("1120", "王小毛", 24, Gender.male, 100,jobList);      //100是人气值

        }
        //将工作列表绑定到数据网格视图控件中
        public void UpdateJob()
        {
            this.dgvJobList.DataSource = empl.WorkList;
        }
        //填写执行情况
        private void tsmiExecute_Click(object sender, EventArgs e)
        {
            //获取当前行的索引
            int index = this.dgvJobList.CurrentRow.Index;
            //通过索引取得泛型集合中的对象,在执行对象中重写的Execute方法
            empl.WorkList[index].Execute();
        }

        private void tsmiAchieve_Click(object sender, EventArgs e)
        {
            int index = this.dgvJobList.CurrentRow.Index;
            
            empl.WorkList[index].Show();
        }
    }


 public partial class FrmCodeExe : Form
    {
        //先创建一个编码工作对象
        CodeJob job = new CodeJob();
        public FrmCodeExe()
        {
            InitializeComponent();
        }

        private void CodeExeForm_Load(object sender, EventArgs e)
        {

        }

        private void  btnOK_Click(object sender, EventArgs e)
        {
            bool isError = false;
            try
            {
                job.CodingLines = int.Parse(this.txtLines.Text.ToString());
                job.Bugs = int.Parse(this.txtBugs.Text.ToString());
                job.WorkDay= int.Parse(this.txtDays.Text.ToString());
            }catch(Exception ex)
            {
                MessageBox.Show(ex.Message);
                isError = true;
            }
            if (!isError)
            {
                MessageBox.Show("提交成功!", "提示");
                this.Close();
            }
            
        }
    }


public partial class FrmTestExe : Form
    {
        //创建一个测试工作对象
        TestJob job = new TestJob();
        
        public FrmTestExe()
        {
            InitializeComponent();
        }

        private void FrmTestExe_Load(object sender, EventArgs e)
        {

        }

        private void btnOk_Click(object sender, EventArgs e)
        {
            bool isError = false;
            try
            {
                job.CaseNum = int.Parse(this.txtCaseNum.Text.ToString());
                job.FindBugs = int.Parse(this.txtBugs.Text.ToString());
                job.WorkDay = int.Parse(this.txtDays.Text.ToString());
            }catch(Exception ex)
            {
                MessageBox.Show(ex.Message);
                isError = true;
            }
            if (!isError)
            {
                MessageBox.Show("提价成功!", "提示");
                this.Close();
            }

           
        }
       
    }


 public abstract class Job
    {
        private string type;             //工作类型
        private string description;             //工作描述
        private string name;           //工作名称
        public string Type { get => type; set => type = value; }
        public string Description { get => description; set => description = value; }
        public string Name { get => name; set => name = value; }
        public Job(string type,string name,string description)
        {
            this.Type = type;
            this.Description = description;
            this.Name = name;
        }
        public Job() { }
        public abstract void Execute();                 //抽象方法,执行
        public abstract void Show();                   //显示工作的完成情况

    }


class CodeJob:Job
    {
        public CodeJob(string type,string name,string description) : base(type, name,description) { }
        
        public CodeJob() { }
        private int codingLines;           //有效编码行数
        private int bugs;          //目前没有解决的bug个数
        private int workDay;        //用时-工作日

        public int CodingLines { get => codingLines; set => codingLines = value; }
        public int Bugs { get => bugs; set => bugs = value; }
        public int WorkDay { get => workDay; set => workDay = value; }

        public override void Execute()
        {
            FrmCodeExe frmCodeExe = new FrmCodeExe();
            frmCodeExe.ShowDialog();
        }
        public override void Show()
        {
            this.CodingLines = 1000;
            
            this.Bugs = 9;
            this.WorkDay = 5;
            string message = string.Format("有效编码行数:{0}\n遗留问题:{1}\n所需工作日:{2}", this.CodingLines ,this.Bugs,this.WorkDay);
            MessageBox.Show(message, "指标完成情况", MessageBoxButtons.OK);
        }
    }


class TestJob:Job
    {
        public TestJob(string type, string name, string description) : base(type, name, description) { }
        public TestJob() { }
        private int caseNum;             //编写的测试用例个数
        private int findBugs;               //发现的Bugs
        private int workDay;                 //用时

        public int CaseNum { get => caseNum; set => caseNum = value; }
        public int FindBugs { get => findBugs; set => findBugs = value; }
        public int WorkDay { get => workDay; set => workDay = value; }

        public override void Execute()
        {
            FrmTestExe frmTestExe = new FrmTestExe();
            frmTestExe.ShowDialog();
        }
        public override void Show()
        {
            this.CaseNum = 200;
            
            this.FindBugs = 9;
            this.WorkDay = 5;
            string message = string.Format("测试用例个数:{0}\n发现的Bug数量:{1}\n所需工作日:{2}",this.CaseNum,this.FindBugs,this.WorkDay);
            MessageBox.Show(message, "指标完成情况", MessageBoxButtons.OK);
        }
    }


class Employee
    {
        private string id;             //工号
        private int age;                   //年龄
        private string name;            //姓名
        private Gender gender;            //性别
        private List<Job> workList;          //工作列表

        public string Id { get => id; set => id = value; }
        public int Age { get => age; set => age = value; }
        public string Name { get => name; set => name = value; }
        public Gender Gender { get => gender; set => gender = value; }
        public List<Job> WorkList { get => workList; set => workList = value; }
        public Employee(string id, int age, string name, Gender gender, List<Job> list)
        {
            this.Id = id;
            this.Age = age;
            this.Name = name;
            this.Gender = gender;
            this.WorkList = list;
        }
        public virtual string DoWork()
        {
            return "工作列表";
        }
    }


class SE:Employee            //SE是程序员
    {
        public SE(string id, string name, int age, Gender gender, int popularity, List<Job> list) : base(id, age, name, gender, list)
        {
            this.Popularity = popularity;
        }
        private int _popularity;        //人气值

        public int Popularity
        {
            get { return _popularity; }
            set { _popularity = value; }
        }
        public override string DoWork()         //工作方法
        {
            StringBuilder sb = new StringBuilder();
            sb.Append(this.Name + ":\n");
            for (int i = 0; i < this.WorkList.Count; i++)
            {
                sb.Append((i + 1) + "、" + WorkList[i].Name + ":" + WorkList[i].Description + "\n");
            }
            return sb.ToString();
        }
    }
举报

相关推荐

0 条评论