首页 > 代码库 > BaseWorkerForm

BaseWorkerForm

using System.Collections.Generic;using System.Windows.Forms;using WindowsFormsApplication3.Enums;using WindowsFormsApplication3.Jobs;using WindowsFormsApplication3.Model;using WindowsFormsApplication3.DataStorge;namespace WindowsFormsApplication3.FormPage{    public class BaseWorkerForm : Form    {        public delegate void FormStatusChangedHandler();        public event FormStatusChangedHandler FormStatusChanged;        protected int childFormNO;        public int ChildFormNO{             get{return childFormNO;}}        protected CheckoutContext checkoutContext;        protected List<BaseJob> jobs;        protected FormStatus status;        public virtual FormStatus Status {            get { return status; }        }        public BaseWorkerForm():this(new CheckoutContext(),CheckoutStep.Introduction){}        public BaseWorkerForm(CheckoutContext checkoutContext,CheckoutStep checkoutStep):base()        {            this.checkoutContext= checkoutContext;            jobs=new List<BaseJob>();        }        public virtual void Execute() {            status = FormStatus.Processing;            ReportChildFormNO();            ReportFormStatusChanged();        }        public void ReportFormStatusChanged(){        if(FormStatusChanged!=null)            FormStatusChanged();        }        public virtual void RefreshForm() {         }        public virtual void ResetForm() {            jobs.Clear();            status = FormStatus.Waiting;            ReportFormStatusChanged();        }        public void ReportChildFormNO() {            childFormNO = 0;            foreach (var childf in checkoutContext.formHierachy) {                if (childf.fatherForm == base.Text)                    childFormNO++;            }        }        public int FinishedChildFormNO(string formname) {            int finishedFormNO = 0;            foreach (var childf in checkoutContext.formHierachy)            {                if (childf.fatherForm == formname&&childf.childForm.status==FormStatus.OK)                    finishedFormNO++;            }            return finishedFormNO;        }    }}