using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Threading; using System.Windows.Forms; namespace LP; public class FormLook2FengXianPingGu : Form { private delegate void delegateFormTitle(Form form, string value); private delegate void delegateDataGridViewDataSource(DataGridView dataGridView, DataView value); private delegate void delegateFormHide(Form form); public FormDesktop desktop = null; private string mTitle = ""; private TaskData mLookTaskData = null; private XianLuData mLookXianLuData = null; private DataSet mDS = null; private bool mAfterInit = false; private IContainer components = null; private Panel panel_Form; private Button buttonCancel; private Panel panel_Result; private DataGridView dataGridView_Result; public FormLook2FengXianPingGu() { InitializeComponent(); mTitle = "展示计算结果(风险评估)"; if (mLookTaskData == null) { mLookTaskData = new TaskData(); } if (mLookXianLuData == null) { mLookXianLuData = new XianLuData(); } } private void FormLook2FengXianPingGu_Load(object sender, EventArgs e) { mAfterInit = false; MyInput_Data(); MySet_Form_Title(this, ""); MyInit_DataSet(); if (mDS != null) { MySet_DataGridView_DataSource(dataGridView_Result, mDS.Tables[0].DefaultView); } mAfterInit = true; } private void FormLook2FengXianPingGu_FormClosing(object sender, FormClosingEventArgs e) { } public void Destroy() { if (mLookXianLuData != null) { mLookXianLuData.Destroy(); } mLookXianLuData = null; if (mLookTaskData != null) { mLookTaskData.Destroy(); } mLookTaskData = null; if (mDS != null) { if (mDS.Tables.Count > 0) { mDS.Tables[0].Rows.Clear(); mDS.Tables[0].Columns.Clear(); } mDS.Tables[0].Clear(); mDS.Clear(); mDS = null; } } public void MyInput_Data() { mLookTaskData.copyFrom_TaskData(desktop.mRightTaskData); mLookXianLuData.CopyFrom_XianLuData(desktop.mRightXianLuData); mTitle = "展示计算结果(风险评估) - " + mLookTaskData.mName_Task + " | " + mLookXianLuData.mName_XianLu; } private void MyInit_DataSet() { if (mDS == null) { mDS = new DataSet(); } if (mDS.Tables.Count == 0) { mDS.Tables.Add(new DataTable()); } mDS.Tables[0].Rows.Clear(); mDS.Tables[0].Columns.Clear(); List list = new List(); list.Clear(); string[] array = new string[63] { "线路编号", "序号", "线路名称", "电压等级", "塔号", "杆塔模型", "塔形", "经度", "纬度", "I回相序", "II回相序", "III回相序", "IV回相序", "A相是否安装避雷器", "B相是否安装避雷器", "C相是否安装避雷器", "接地电阻", "左避雷中距m", "右避雷中距m", "避雷线高度m", "绝缘子串长度mm", "杆塔呼高m", "I回上相中距m", "I回中相中距m", "I回下相中距m", "I回上相高度m", "I回中相高度m", "I回下相高度m", "II回上相中距m", "II回中相中距m", "II回下相中距m", "II回上相高度m", "II回中相高度m", "II回下相高度m", "III回上相中距m", "III回中相中距m", "III回下相中距m", "III回上相高度m", "III回中相高度m", "III回下相高度m", "IV回上相中距m", "IV回中相中距m", "IV回下相中距m", "IV回上相高度m", "IV回中相高度m", "IV回下相高度m", "小号侧档距", "大号侧档距", "电角度", "雷电流幅值a", "雷电流幅值b", "地面倾角1", "地面倾角2", "海拔m", "地形", "地闪密度", "直线或耐张杆塔", "绕击反击", "反击耐雷水平kA", "反击跳闸率(次/100km.a)", "绕击耐雷水平kA", "绕击跳闸率(次/100km.a)", "雷击风险等级" }; string[] array2 = new string[11] { "塔号", "塔形", "接地电阻", "绝缘子串长度mm", "杆塔呼高m", "地面倾角1", "反击耐雷水平kA", "反击跳闸率(次/100km.a)", "绕击耐雷水平kA", "绕击跳闸率(次/100km.a)", "雷击风险等级" }; int num = -1; GanTas ganTas = null; try { for (int i = 0; i < array2.Length; i++) { list.Add(array2[i]); } for (int j = 0; j < list.Count; j++) { mDS.Tables[0].Columns.Add(list[j]); } for (int k = 0; k < desktop.mXL.mListXianLuData.Count; k++) { if (mLookXianLuData.mName_XianLu.Equals(desktop.mXL.mListXianLuData[k].mName_XianLu)) { num = k; } } if (num < 0) { MyLog.AddLog("MyInit_DataSet() FormLook1 未匹配线路(" + mLookXianLuData.mName_XianLu + ")."); return; } if (num >= desktop.mXL.mListGanTas.Count) { MyLog.AddLog($"MyInit_DataSet() FormLook1 mListGanTas越界(index={num} out of [0,{desktop.mXL.mListGanTas.Count - 1}])."); return; } ganTas = desktop.mXL.mListGanTas[num]; for (int l = 0; l < ganTas.mListGanTaData.Count; l++) { DataRow dataRow = mDS.Tables[0].NewRow(); for (int m = 0; m < list.Count; m++) { switch (list[m]) { case "塔号": dataRow[m] = ganTas.mListGanTaData[l].mID_GanTa; break; case "塔形": dataRow[m] = ganTas.mListGanTaData[l].mTaXing_GanTa; break; case "接地电阻": dataRow[m] = ganTas.mListGanTaData[l].mJDDZ_GanTa; break; case "绝缘子串长度mm": dataRow[m] = ganTas.mListGanTaData[l].mJYZCD_GanTa; break; case "杆塔呼高m": dataRow[m] = ganTas.mListGanTaData[l].mHuGao_GanTa; break; case "地面倾角1": dataRow[m] = ganTas.mListGanTaData[l].mDMQJ1_GanTa; break; case "地面倾角2": dataRow[m] = ganTas.mListGanTaData[l].mDMQJ2_GanTa; break; case "反击耐雷水平kA": dataRow[m] = ganTas.mListGanTaData[l].mFJ_NLSP_GanTa; break; case "反击跳闸率(次/100km.a)": dataRow[m] = ganTas.mListGanTaData[l].mFJ_TZL_GanTa; break; case "绕击耐雷水平kA": dataRow[m] = ganTas.mListGanTaData[l].mRJ_NLSP_GanTa; break; case "绕击跳闸率(次/100km.a)": dataRow[m] = ganTas.mListGanTaData[l].mRJ_TZL_GanTa; break; case "雷击风险等级": dataRow[m] = ganTas.mListGanTaData[l].mFXDJ_GanTa; break; } } mDS.Tables[0].Rows.Add(dataRow); } } catch (Exception ex) { MyLog.AddLog("MyInit_DataSet() FormLook1 Exception=" + ex.Message + "."); } } private void buttonCancel_Click(object sender, EventArgs e) { if (mAfterInit) { Thread thread = new Thread(MyCancel); thread.Start(); } } private void MyCancel() { MySet_Form_Title(this, "取消—"); MySet_Form_Title(this, "取消———"); base.DialogResult = DialogResult.Cancel; MyFormHide(this); } public void MySet_Form_Title(Form form, string value) { if (form.InvokeRequired) { delegateFormTitle method = MySet_Form_Title; form.Invoke(method, form, value); } else { form.Text = mTitle + " " + value; } } public void MySet_DataGridView_DataSource(DataGridView dataGridView, DataView value) { if (dataGridView.InvokeRequired) { delegateDataGridViewDataSource method = MySet_DataGridView_DataSource; dataGridView.Invoke(method, dataGridView, value); } else { dataGridView.DataSource = 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.panel_Form = new System.Windows.Forms.Panel(); this.buttonCancel = new System.Windows.Forms.Button(); this.panel_Result = new System.Windows.Forms.Panel(); this.dataGridView_Result = new System.Windows.Forms.DataGridView(); this.panel_Form.SuspendLayout(); this.panel_Result.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)this.dataGridView_Result).BeginInit(); base.SuspendLayout(); this.panel_Form.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; this.panel_Form.Controls.Add(this.buttonCancel); this.panel_Form.Controls.Add(this.panel_Result); this.panel_Form.Dock = System.Windows.Forms.DockStyle.Fill; this.panel_Form.Location = new System.Drawing.Point(0, 0); this.panel_Form.Name = "panel_Form"; this.panel_Form.Size = new System.Drawing.Size(1283, 607); this.panel_Form.TabIndex = 1; this.buttonCancel.Font = new System.Drawing.Font("宋体", 10.5f, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, 134); this.buttonCancel.Location = new System.Drawing.Point(1219, 563); this.buttonCancel.Name = "buttonCancel"; this.buttonCancel.Size = new System.Drawing.Size(50, 29); this.buttonCancel.TabIndex = 3; this.buttonCancel.Text = "取消"; this.buttonCancel.UseVisualStyleBackColor = true; this.buttonCancel.Click += new System.EventHandler(buttonCancel_Click); this.panel_Result.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.panel_Result.Controls.Add(this.dataGridView_Result); this.panel_Result.Location = new System.Drawing.Point(10, 10); this.panel_Result.Name = "panel_Result"; this.panel_Result.Size = new System.Drawing.Size(1203, 583); this.panel_Result.TabIndex = 2; this.dataGridView_Result.AllowUserToAddRows = false; this.dataGridView_Result.AllowUserToDeleteRows = false; this.dataGridView_Result.ClipboardCopyMode = System.Windows.Forms.DataGridViewClipboardCopyMode.EnableAlwaysIncludeHeaderText; this.dataGridView_Result.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; this.dataGridView_Result.Dock = System.Windows.Forms.DockStyle.Fill; this.dataGridView_Result.Location = new System.Drawing.Point(0, 0); this.dataGridView_Result.Name = "dataGridView_Result"; this.dataGridView_Result.RowHeadersWidthSizeMode = System.Windows.Forms.DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders; this.dataGridView_Result.RowTemplate.Height = 23; this.dataGridView_Result.Size = new System.Drawing.Size(1201, 581); this.dataGridView_Result.TabIndex = 1; base.AutoScaleDimensions = new System.Drawing.SizeF(6f, 12f); base.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; base.ClientSize = new System.Drawing.Size(1283, 607); base.Controls.Add(this.panel_Form); base.Name = "FormLook2FengXianPingGu"; base.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; this.Text = "FormLook2FengXianPingGu"; base.FormClosing += new System.Windows.Forms.FormClosingEventHandler(FormLook2FengXianPingGu_FormClosing); base.Load += new System.EventHandler(FormLook2FengXianPingGu_Load); this.panel_Form.ResumeLayout(false); this.panel_Result.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)this.dataGridView_Result).EndInit(); base.ResumeLayout(false); } }