首页 > 代码库 > MainForm()
MainForm()
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using WindowsFormsApplication3.Model;using WindowsFormsApplication3.Enums;using WindowsFormsApplication3.FormPage;using WindowsFormsApplication3.DataStorge;using System.Threading;namespace WindowsFormsApplication3{ public partial class MainForm : Form { protected static readonly Color[] TREE_VIEW_FORE_COLOR = new Color[] { Color.Black, Color.Black, Color.Black, Color.Red, Color.Black }; protected BaseWorkerForm activeForm; protected Dictionary<string, BaseWorkerForm> formDictionary; protected Dictionary<string, TreeNode> nodeDictionary; protected FormStatus status; protected CheckoutContext checkoutContext; public CheckoutContext CheckoutContext { get { return checkoutContext; } } public MainForm():base() { this.checkoutContext = new CheckoutContext(); InitializeComponent(); } protected void BuildNodeDictionary(TreeNodeCollection nodes) { foreach (TreeNode node in nodes) { if(formDictionary.ContainsKey(node.Name)){ node.Tag=formDictionary[node.Name]; nodeDictionary.Add(node.Name,node); } BuildNodeDictionary(node.Nodes); } } private void buttonTroubleshoot_Click(object sender, EventArgs e) { Execute(); } public void Execute() { status = FormStatus.Processing; buttonTroubleshoot.Enabled = false; foreach (var childf in checkoutContext.formHierachy) { childf.childForm.ResetForm();; childf.childForm.RefreshForm(); } RefreshForm(); ExecuteForm(); } protected void ExecuteForm() { foreach (var childf in checkoutContext.formHierachy) { ThreadPool.QueueUserWorkItem(new WaitCallback(childf.childForm.Execute),null); } } public void ChildFormStatusChanged() { // RefreshForm(); } private void MainForm_Load(object sender, System.EventArgs e) { nodeDictionary=new Dictionary<string,TreeNode>(); checkoutContext.formHierachy.Add(new FormHierachy("null", new IntroductionForm(checkoutContext, CheckoutStep.Introduction))); //checkoutContext.formHierachy.Add(new FormHierachy("IntroductionForm", new ClientForm(checkoutContext, CheckoutStep.Client))); //checkoutContext.formHierachy.Add(new FormHierachy("IntroductionForm", new ServerForm(checkoutContext, CheckoutStep.Server))); //checkoutContext.formHierachy.Add(new FormHierachy("ServerForm", new CellsForm(checkoutContext, CheckoutStep.Cells))); //checkoutContext.formHierachy.Add(new FormHierachy("ServerForm", new VolumesForm(checkoutContext, CheckoutStep.Volumes))); checkoutContext.formHierachy.Add(new FormHierachy("ClientForm", new OperationSystemForm(checkoutContext, CheckoutStep.OperationSystem))); foreach (var childf in checkoutContext.formHierachy) { childf.childForm.TopLevel = false; childf.childForm.Dock = DockStyle.Fill; childf.childForm.Visible = true; childf.childForm.FormBorderStyle = FormBorderStyle.None; } formDictionary=new Dictionary<string,BaseWorkerForm>(); foreach (var childf in checkoutContext.formHierachy) { formDictionary.Add(childf.childForm.Text, childf.childForm); childf.childForm.FormStatusChanged += ChildFormStatusChanged; } activeForm = formDictionary["IntroductionForm"] as BaseWorkerForm; splitContainer1.Panel2.Controls.Add(activeForm); BuildNodeDictionary(treeViewSteps.Nodes); treeViewSteps.ImageList = ImageConstants.IMAGE_LIST_FORM_STATUS; treeViewSteps.ExpandAll(); RefreshForm(); } public void RefreshForm() { richTextBox.Clear(); RefreshTreeNodes(treeViewSteps.Nodes); foreach(LogEntry le in checkoutContext.logData.logList){ richTextBox.AppendText(le.ToString()); } } public void RefreshTreeNodes(TreeNodeCollection nodes) { foreach (TreeNode node in nodes) { BaseWorkerForm form = node.Tag as BaseWorkerForm; FormStatus formstatus = form == null ? FormStatus.Waiting : form.Status; node.ForeColor = TREE_VIEW_FORE_COLOR[(int)formstatus]; node.SelectedImageIndex = node.ImageIndex = (int)formstatus; RefreshTreeNodes(node.Nodes); } } private void treeViewSteps_AfterSelect(object sender, TreeViewEventArgs e) { TreeNode treeNode = e.Node; if (activeForm != null) splitContainer1.Panel2.Controls.Remove(activeForm); activeForm = treeNode.Tag as BaseWorkerForm; if (activeForm != null) splitContainer1.Panel2.Controls.Add(activeForm); } }}
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。