using System; using System.ComponentModel; using System.Drawing; using System.Threading; using System.Windows.Forms; namespace LP; public class Form4_FengXianPingGu : Form { private delegate void delegateFormSetTitle(Form form, string value); private delegate void delegateComboBoxItemsClear(ComboBox comboBox); private delegate void delegateComboBoxAdd(ComboBox comboBox, string value); private delegate void delegateComboBoxSetSelectedIndex(ComboBox comboBox, int value); private delegate void delegateListBoxItemsClear(ListBox listBox); private delegate void delegateListBoxAdd(ListBox listBox, string value); private delegate void delegateListBoxSetSelectedIndex(ListBox listBox, int value); private delegate void delegateTextBoxSetText(TextBox textBox, string value); private delegate void delegateButtonEnabled(Button button, bool value); private delegate void delegateFormHide(Form form); public FormDesktop desktop = null; private bool mAfterInit = false; public string mTitle = ""; public XianLuData mXianLuData = null; private int mXianLuID = 0; public string mNameXianLu = ""; public int mIndexControl_XianLuName = -1; public int mIndexData_ListXianLuData = -1; private bool mReady_XianLuName = false; public TaskData mTaskData = null; public string mNameTask = ""; public int mIndexControl_TaskName_PuTongJiSuan = -1; private string mTaskName_PuTongJiSuan = ""; private TaskData mPuTongJiSuan_TaskData = null; private bool mBusy_ButtonOK = false; private bool mBusy_ListBox_TaskName_PuTongJiSuan = false; private IContainer components = null; private ComboBox comboBox_TaskName_PuTongJiSuan; private ComboBox comboBox_XianLuName; private Label label4; private Label label1; private Button buttonCancel; private Button buttonOK; public bool Ready_XianLuName { get { return mReady_XianLuName; } set { mReady_XianLuName = value; } } public string TaskName_PuTongJiSuan { get { return mTaskName_PuTongJiSuan; } set { mTaskName_PuTongJiSuan = value; mNameTask = "风险评估-" + value; if (string.IsNullOrEmpty(value) || mPuTongJiSuan_TaskData == null) { return; } for (int i = 0; i < desktop.mTask.mListDetails.Count; i++) { if (value.Equals(desktop.mTask.mListDetails[i].mTaskData.mName_Task)) { mPuTongJiSuan_TaskData.copyFrom_TaskData(desktop.mTask.mListDetails[i].mTaskData); break; } } } } public bool Busy_ButtonOK { get { return mBusy_ButtonOK; } set { mBusy_ButtonOK = value; MyButtonEnabled(buttonCancel, !value); } } public bool Busy_ComboBox_TaskName_PuTongJiSuan { get { return mBusy_ListBox_TaskName_PuTongJiSuan; } set { mBusy_ListBox_TaskName_PuTongJiSuan = value; } } public Form4_FengXianPingGu() { InitializeComponent(); if (mTaskData == null) { mTaskData = new TaskData(); } if (mXianLuData == null) { mXianLuData = new XianLuData(); } if (mPuTongJiSuan_TaskData == null) { mPuTongJiSuan_TaskData = new TaskData(); } mNameTask = "风险评估"; mTitle = "风险评估"; mIndexControl_XianLuName = -1; mIndexData_ListXianLuData = -1; mIndexControl_TaskName_PuTongJiSuan = -1; } private void Form4_FengXianPingGu_Load(object sender, EventArgs e) { mAfterInit = false; Busy_ButtonOK = false; MyFormSetTitle(this, ""); Ready_XianLuName = false; base.DialogResult = DialogResult.None; MyInput_TaskData(); MyInit_ComboBox_XianLuName(); MyInit_ComboBox_TaskName_PuTongJiSuan(); mAfterInit = true; } private void Form4_FengXianPingGu_FormClosing(object sender, FormClosingEventArgs e) { } public void MyInput_TaskData() { mTaskData.copyFrom_TaskData(desktop.m4TaskData_FengXianPingGu); } public void MyOutput_TaskData() { desktop.m4TaskData_FengXianPingGu.copyFrom_TaskData(mTaskData); } private void MyInit_ComboBox_XianLuName() { MyComboBoxItemsClear(comboBox_XianLuName); if (desktop.mXL == null || desktop.mXL.mListXianLuData == null) { return; } for (int i = 0; i < desktop.mXL.mListXianLuData.Count; i++) { MyComboBoxAdd(comboBox_XianLuName, desktop.mXL.mListXianLuData[i].mName_XianLu); } if (mIndexControl_XianLuName < 0 || mIndexControl_XianLuName >= comboBox_XianLuName.Items.Count) { mIndexControl_XianLuName = 0; } if (mIndexControl_XianLuName >= 0 && mIndexControl_XianLuName < comboBox_XianLuName.Items.Count) { MyComboBoxSetSelectedIndex(comboBox_XianLuName, mIndexControl_XianLuName); mNameXianLu = comboBox_XianLuName.SelectedItem.ToString().Trim(); for (int j = 0; j < desktop.mXL.mListXianLuData.Count; j++) { if (mNameXianLu.Equals(desktop.mXL.mListXianLuData[j].mName_XianLu)) { mXianLuData.CopyFrom_XianLuData(desktop.mXL.mListXianLuData[j]); mIndexData_ListXianLuData = j; mXianLuID = mXianLuData.mID_XianLu; break; } } Ready_XianLuName = true; } else { mNameXianLu = ""; mXianLuID = 0; Ready_XianLuName = false; } } private void MyInit_ComboBox_TaskName_PuTongJiSuan() { Busy_ComboBox_TaskName_PuTongJiSuan = true; MyComboBoxItemsClear(comboBox_TaskName_PuTongJiSuan); for (int i = 0; i < desktop.mTask.mListDetails.Count; i++) { if (desktop.mTask.mListDetails[i].mTaskData.mXianLuName_Task.Equals(mNameXianLu) && desktop.mTask.mListDetails[i].mTaskData.Permit_FengXianPingGu() && desktop.mTask.mListDetails[i].mTaskData.mName_Task.IndexOf("风险评估") < 0 && desktop.mTask.mListDetails[i].mTaskData.mName_Task.IndexOf("措施推荐") < 0) { MyComboBoxAdd(comboBox_TaskName_PuTongJiSuan, desktop.mTask.mListDetails[i].mTaskData.mName_Task); } } if (mIndexControl_TaskName_PuTongJiSuan < 0 || mIndexControl_TaskName_PuTongJiSuan >= comboBox_TaskName_PuTongJiSuan.Items.Count) { mIndexControl_TaskName_PuTongJiSuan = 0; } if (mIndexControl_TaskName_PuTongJiSuan >= 0 && mIndexControl_TaskName_PuTongJiSuan < comboBox_TaskName_PuTongJiSuan.Items.Count) { MyComboBoxSetSelectedIndex(comboBox_TaskName_PuTongJiSuan, mIndexControl_TaskName_PuTongJiSuan); TaskName_PuTongJiSuan = comboBox_TaskName_PuTongJiSuan.SelectedItem.ToString(); } else { TaskName_PuTongJiSuan = ""; } Busy_ComboBox_TaskName_PuTongJiSuan = false; } public void Destroy() { mPuTongJiSuan_TaskData.Destroy(); mTaskData.Destroy(); mXianLuData.Destroy(); } private void buttonOK_Click(object sender, EventArgs e) { MyFormSetTitle(this, ""); if (Busy_ButtonOK) { return; } Busy_ButtonOK = true; if (!Ready_XianLuName) { if (comboBox_XianLuName.Items.Count > 0) { MyFormSetTitle(this, "请选择线路,然后点击按钮“" + buttonOK.Text + "”。"); } if (comboBox_XianLuName.Items.Count == 0) { MyFormSetTitle(this, "缺少线路数据。 请点击按钮“" + buttonCancel.Text + "”,退出对话框。"); } comboBox_XianLuName.Focus(); Busy_ButtonOK = false; return; } if (string.IsNullOrEmpty(TaskName_PuTongJiSuan)) { if (comboBox_TaskName_PuTongJiSuan.Items.Count == 0) { MyFormSetTitle(this, "!无匹配结果!防雷计算。"); Busy_ButtonOK = false; buttonCancel.Focus(); } else { MyFormSetTitle(this, "请选择已有结果的防雷计算任务,然后点击“" + buttonOK.Text + "”。"); comboBox_TaskName_PuTongJiSuan.Focus(); Busy_ButtonOK = false; } return; } switch (desktop.mTask.MyCheckTaskName(mNameTask)) { case 1: MyFormSetTitle(this, "任务名称空白!"); buttonCancel.Focus(); Busy_ButtonOK = false; return; case 2: MyFormSetTitle(this, "评估任务已存在!请点击“" + buttonCancel.Text + "”。"); buttonCancel.Focus(); Busy_ButtonOK = false; return; } if (!mPuTongJiSuan_TaskData.Permit_FengXianPingGu()) { MyFormSetTitle(this, "重新完成普通计算。"); comboBox_TaskName_PuTongJiSuan.Focus(); Busy_ButtonOK = false; } else { Thread thread = new Thread(MyThread_ButtonOK); thread.Start(); } } private bool IsRepeatTask() { bool result = false; for (int i = 0; i < desktop.mTask.mListDetails.Count; i++) { if (mNameTask.Equals(desktop.mTask.mListDetails[i].mTaskData.mName_Task)) { result = true; break; } } return result; } private void MyRefresh_TaskData() { if (mPuTongJiSuan_TaskData != null) { mTaskData.copyFrom_TaskData(mPuTongJiSuan_TaskData); } mTaskData.mID_Task = TaskData.mNextID_static; mTaskData.mTypeCode_Task = 2; mTaskData.mName_Task = mNameTask; mTaskData.mXianLuID_Task = mXianLuData.mID_XianLu; mTaskData.mXianLuName_Task = mXianLuData.mName_XianLu; mTaskData.mXianLuJLZL_Task = mXianLuData.mJLZL_XianLu; mTaskData.mDYDJ_Task = mXianLuData.mDYDJ_XianLu; mTaskData.Finished2_FengXianPingGu = 0; } private void MyThread_ButtonOK() { Busy_ButtonOK = false; MyRefresh_TaskData(); for (int i = 0; i < 10; i++) { if (desktop.m4TaskData_FengXianPingGu.mID_Task < 0) { break; } Thread.Sleep(1000); } desktop.m4TaskData_FengXianPingGu.copyFrom_TaskData(mTaskData); desktop.MySendForm_TaskData(desktop, desktop.m4TaskData_FengXianPingGu); base.DialogResult = DialogResult.OK; MyFormHide(this); } private void buttonCancel_Click(object sender, EventArgs e) { MyFormSetTitle(this, ""); MyButtonEnabled(buttonCancel, value: false); Thread thread = new Thread(MyCancel); thread.Start(); } private void MyCancel() { MyFormSetTitle(this, "取消—"); MyFormSetTitle(this, "取消———"); base.DialogResult = DialogResult.Cancel; MyFormHide(this); } private void comboBox_XianLuName_SelectedIndexChanged(object sender, EventArgs e) { if (!mAfterInit || Busy_ButtonOK) { return; } int selectedIndex = ((ComboBox)sender).SelectedIndex; mIndexControl_XianLuName = selectedIndex; mNameXianLu = ((ComboBox)sender).SelectedItem.ToString().Trim(); for (int i = 0; i < desktop.mXL.mListXianLuData.Count; i++) { if (mNameXianLu.Equals(desktop.mXL.mListXianLuData[i].mName_XianLu)) { mIndexData_ListXianLuData = i; mXianLuData.CopyFrom_XianLuData(desktop.mXL.mListXianLuData[i]); mXianLuID = mXianLuData.mID_XianLu; Ready_XianLuName = true; break; } } MyInit_ComboBox_TaskName_PuTongJiSuan(); } private void comboBox_TaskName_PuTongJiSuan_SelectedIndexChanged(object sender, EventArgs e) { if (mAfterInit && !Busy_ButtonOK && !Busy_ComboBox_TaskName_PuTongJiSuan) { Busy_ComboBox_TaskName_PuTongJiSuan = true; int selectedIndex = ((ComboBox)sender).SelectedIndex; mIndexControl_TaskName_PuTongJiSuan = selectedIndex; TaskName_PuTongJiSuan = ((ComboBox)sender).SelectedItem.ToString(); Busy_ComboBox_TaskName_PuTongJiSuan = false; } } public void MyFormSetTitle(Form form, string value) { if (form.InvokeRequired) { delegateFormSetTitle method = MyFormSetTitle; form.Invoke(method, form, value); return; } if (string.IsNullOrEmpty(value)) { form.Text = mTitle; } if (!string.IsNullOrEmpty(value)) { form.Text = mTitle + " " + value; } } public void MyComboBoxItemsClear(ComboBox comboBox) { if (comboBox.InvokeRequired) { delegateComboBoxItemsClear method = MyComboBoxItemsClear; comboBox.Invoke(method, comboBox); } else { comboBox.Items.Clear(); } } public void MyComboBoxAdd(ComboBox comboBox, string value) { if (comboBox.InvokeRequired) { delegateComboBoxAdd method = MyComboBoxAdd; comboBox.Invoke(method, comboBox, value); } else if (!string.IsNullOrEmpty(value)) { comboBox.Items.Add(value); } } public void MyComboBoxSetSelectedIndex(ComboBox comboBox, int value) { if (comboBox.InvokeRequired) { delegateComboBoxSetSelectedIndex method = MyComboBoxSetSelectedIndex; comboBox.Invoke(method, comboBox, value); } else if (value >= 0 && value < comboBox.Items.Count) { comboBox.SelectedIndex = value; } } public void MyListBoxItemsClear(ListBox listBox) { if (listBox.InvokeRequired) { delegateListBoxItemsClear method = MyListBoxItemsClear; listBox.Invoke(method, listBox); } else { listBox.Items.Clear(); } } public void MyListBoxAdd(ListBox listBox, string value) { if (listBox.InvokeRequired) { delegateListBoxAdd method = MyListBoxAdd; listBox.Invoke(method, listBox, value); } else if (!string.IsNullOrEmpty(value)) { listBox.Items.Add(value); } } public void MyListBoxSetSelectedIndex(ListBox listBox, int value) { if (listBox.InvokeRequired) { delegateListBoxSetSelectedIndex method = MyListBoxSetSelectedIndex; listBox.Invoke(method, listBox, value); } else if (value >= 0 && value < listBox.Items.Count) { listBox.SelectedIndex = value; } } public void MyTextBoxSetText(TextBox textBox, string value) { if (textBox.InvokeRequired) { delegateTextBoxSetText method = MyTextBoxSetText; textBox.Invoke(method, textBox, value); } else { textBox.Text = value; } } public void MyButtonEnabled(Button button, bool value) { if (button.InvokeRequired) { delegateButtonEnabled method = MyButtonEnabled; button.Invoke(method, button, value); } else { button.Enabled = value; } } public void MyFormHide(Form form) { try { if (form.InvokeRequired) { delegateFormHide method = MyFormHide; form.Invoke(method, form); } else { form.Hide(); } } catch (Exception) { } } protected override void Dispose(bool disposing) { if (disposing && components != null) { components.Dispose(); } base.Dispose(disposing); } private void InitializeComponent() { this.comboBox_TaskName_PuTongJiSuan = new System.Windows.Forms.ComboBox(); this.comboBox_XianLuName = new System.Windows.Forms.ComboBox(); this.label4 = new System.Windows.Forms.Label(); this.label1 = new System.Windows.Forms.Label(); this.buttonCancel = new System.Windows.Forms.Button(); this.buttonOK = new System.Windows.Forms.Button(); base.SuspendLayout(); this.comboBox_TaskName_PuTongJiSuan.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.comboBox_TaskName_PuTongJiSuan.Font = new System.Drawing.Font("宋体", 12f, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, 134); this.comboBox_TaskName_PuTongJiSuan.FormattingEnabled = true; this.comboBox_TaskName_PuTongJiSuan.Location = new System.Drawing.Point(25, 89); this.comboBox_TaskName_PuTongJiSuan.Name = "comboBox_TaskName_PuTongJiSuan"; this.comboBox_TaskName_PuTongJiSuan.Size = new System.Drawing.Size(356, 20); this.comboBox_TaskName_PuTongJiSuan.TabIndex = 64; this.comboBox_TaskName_PuTongJiSuan.SelectedIndexChanged += new System.EventHandler(comboBox_TaskName_PuTongJiSuan_SelectedIndexChanged); this.comboBox_XianLuName.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.comboBox_XianLuName.Font = new System.Drawing.Font("宋体", 12f, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, 134); this.comboBox_XianLuName.FormattingEnabled = true; this.comboBox_XianLuName.Location = new System.Drawing.Point(25, 32); this.comboBox_XianLuName.Name = "comboBox_XianLuName"; this.comboBox_XianLuName.Size = new System.Drawing.Size(356, 20); this.comboBox_XianLuName.TabIndex = 65; this.comboBox_XianLuName.SelectedIndexChanged += new System.EventHandler(comboBox_XianLuName_SelectedIndexChanged); this.label4.AutoSize = true; this.label4.Font = new System.Drawing.Font("宋体", 10.5f, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, 134); this.label4.Location = new System.Drawing.Point(25, 72); this.label4.Name = "label4"; this.label4.Size = new System.Drawing.Size(91, 14); this.label4.TabIndex = 61; this.label4.Text = "防雷计算任务"; this.label1.AutoSize = true; this.label1.Font = new System.Drawing.Font("宋体", 10.5f, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, 134); this.label1.Location = new System.Drawing.Point(25, 15); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(63, 14); this.label1.TabIndex = 63; this.label1.Text = "线路名称"; this.buttonCancel.Location = new System.Drawing.Point(295, 133); this.buttonCancel.Name = "buttonCancel"; this.buttonCancel.Size = new System.Drawing.Size(86, 28); this.buttonCancel.TabIndex = 68; this.buttonCancel.Text = "取消"; this.buttonCancel.UseVisualStyleBackColor = true; this.buttonCancel.Click += new System.EventHandler(buttonCancel_Click); this.buttonOK.Location = new System.Drawing.Point(187, 133); this.buttonOK.Name = "buttonOK"; this.buttonOK.Size = new System.Drawing.Size(86, 28); this.buttonOK.TabIndex = 67; this.buttonOK.Text = "确定"; this.buttonOK.UseVisualStyleBackColor = true; this.buttonOK.Click += new System.EventHandler(buttonOK_Click); base.AutoScaleDimensions = new System.Drawing.SizeF(6f, 12f); base.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; base.ClientSize = new System.Drawing.Size(407, 173); base.Controls.Add(this.buttonCancel); base.Controls.Add(this.buttonOK); base.Controls.Add(this.comboBox_TaskName_PuTongJiSuan); base.Controls.Add(this.comboBox_XianLuName); base.Controls.Add(this.label4); base.Controls.Add(this.label1); base.Name = "Form4_FengXianPingGu"; base.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; this.Text = "Form4_FengXianPingGu"; base.FormClosing += new System.Windows.Forms.FormClosingEventHandler(Form4_FengXianPingGu_FormClosing); base.Load += new System.EventHandler(Form4_FengXianPingGu_Load); base.ResumeLayout(false); base.PerformLayout(); } }