using Autodesk.Revit.DB; using Autodesk.Revit.UI; using HStation.RevitDev.RevitDataExport.Common; using HStation.RevitDev.RevitDataExport.Entity; using HStation.RevitDev.RevitDataExport.Utility; using System; using System.Collections.Generic; using System.Windows.Forms; namespace HStation.RevitDev.RevitDataExport.Forms { public partial class Form_SystemCheckResult : System.Windows.Forms.Form { bool m_isFirstTrigger = true; List m_checkResult = new List(); UIApplication m_uiapp = null; string m_id = string.Empty; ExternalEvent_SelectElement m_selectElementEvent = new ExternalEvent_SelectElement(); ExternalEvent m_selectElementHandler = null; public Form_SystemCheckResult(UIApplication uiapp, List result) { m_uiapp = uiapp; m_checkResult = result; m_selectElementHandler = ExternalEvent.Create(m_selectElementEvent); InitializeComponent(); InitializeControls(); } private void InitializeControls() { InitializeDataGridView(); } private void InitializeDataGridView() { if (m_checkResult == null) { return; } this.dgv_checkList.CellDoubleClick += DataGridView_CellDoubleClick; InitializeDataGridViewColumns(); InitializeDataGridViewRows(); this.dgv_checkList.AutoGenerateColumns = false; } private void InitializeDataGridViewRows() { int i = 1; foreach (var pair in m_checkResult) { var checkType = pair.CheckResultType; foreach (var id in pair.ElementIds) { int rowIndex = this.dgv_checkList.Rows.Add(); this.dgv_checkList.Rows[rowIndex].Cells["Index"].Value = i++; this.dgv_checkList.Rows[rowIndex].Cells["ID"].Value = id.IntegerValue; this.dgv_checkList.Rows[rowIndex].Cells["Describe"].Value = checkType.GetDescriptioin() + pair.Message + " " + pair.ConnectIds; this.dgv_checkList.Rows[rowIndex].Cells["Result"].Value = pair.Result ? "通过" : "失败"; } } } private void InitializeDataGridViewColumns() { DataGridViewTextBoxColumn column1 = new DataGridViewTextBoxColumn(); column1.Name = "Index"; column1.HeaderText = "序号"; DataGridViewTextBoxColumn column2 = new DataGridViewTextBoxColumn(); column2.Name = "ID"; column2.HeaderText = "编码"; DataGridViewTextBoxColumn column3 = new DataGridViewTextBoxColumn(); column3.Name = "Describe"; column3.HeaderText = "校验内容"; column3.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; DataGridViewTextBoxColumn column4 = new DataGridViewTextBoxColumn(); column4.Name = "Result"; column4.HeaderText = "校验结果"; this.dgv_checkList.Columns.Add(column1); this.dgv_checkList.Columns.Add(column2); this.dgv_checkList.Columns.Add(column3); this.dgv_checkList.Columns.Add(column4); } private void DataGridView_CellDoubleClick(object sender, DataGridViewCellEventArgs e) { var columnIndex = e.ColumnIndex; var rowIndex = e.RowIndex; DataGridView dataGridView = sender as DataGridView; DataGridViewCell cell = dataGridView.Rows[rowIndex].Cells[columnIndex]; if (cell.OwningColumn.Name == "ID") { m_id = cell.Value.ToString(); //UIDocumentUtils.ShowElement(m_id); ExternalEvent_SelectElement.m_id = m_id; m_selectElementHandler.Raise(); } } private void Form_SystemCheckResult_Load(object sender, EventArgs e) { this.dgv_checkList.AutoGenerateColumns = false; this.dgv_checkList.CellFormatting += Dgv_checkList_CellFormatting; } private void Dgv_checkList_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) { if (e.ColumnIndex == 3 && e.Value != null) { if (e.Value.ToString() == "失败") e.CellStyle.ForeColor = System.Drawing.Color.Red; else e.CellStyle.ForeColor = System.Drawing.Color.Green; } } private void simpleButton2_Click(object sender, EventArgs e) { this.Close(); } private void simpleButton1_Click(object sender, EventArgs e) { DialogResult = DialogResult.OK; this.Close(); } } }