qin
2024-09-28 e358beb08f5be49703009b64f058ecfbcfeefbd9
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
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<CheckResultType, List<ElementId>> m_checkResult = new Dictionary<CheckResultType, List<ElementId>>();
        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<CheckResultType, List<ElementId>> 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;
        }
    }
}