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; Dictionary> m_checkResult = new Dictionary>(); 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, Dictionary> 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.Key; foreach (var id in pair.Value) { 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(); } } } 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; this.dgv_checkList.Columns.Add(column1); this.dgv_checkList.Columns.Add(column2); this.dgv_checkList.Columns.Add(column3); } 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(); ExternalEvent_SelectElement.m_id = m_id; m_selectElementHandler.Raise(); } } private void Form_SystemCheckResult_Load(object sender, EventArgs e) { this.dgv_checkList.AutoGenerateColumns = false; } } }