zoukankan      html  css  js  c++  java
  • 动态添加datagridview

     //加载xml数据
            private void buttonX1_Click(object sender, EventArgs e)
            {
                //读取xml
                //BuildDataGrid(GetObjectArrayList(@"E:\TDDOWNLOAD\设计模式\AbstractFactory\ObjectIdentity\xml\"), this.tabControlPanel1);
                // BuildDataGrid(GetObjectArrayList(@"E:\TDDOWNLOAD\设计模式\AbstractFactory\ObjectIdentity\xml\"), this.tabControlPanel2);
                BuildDataGrid(GetObjectArrayList(@"E:\TDDOWNLOAD\设计模式\AbstractFactory\ObjectIdentity\xml\canyonlands.xml"), this.tabControlPanel3);
                //BuildDataGrid(GetObjectArrayList(@"E:\TDDOWNLOAD\设计模式\AbstractFactory\ObjectIdentity\xml\"), this.tabControlPanel4);
                //  BuildDataGrid(GetObjectArrayList(@"E:\TDDOWNLOAD\设计模式\AbstractFactory\ObjectIdentity\xml\"), this.tabControlPanel5);

                BuildDataGrid(GetObjectArrayList(@"E:\TDDOWNLOAD\设计模式\AbstractFactory\ObjectIdentity\xml\water.xml"), this.tabControlPanel6);
                // BuildDataGrid(GetObjectArrayList(@"E:\TDDOWNLOAD\设计模式\AbstractFactory\ObjectIdentity\xml\"), this.tabControlPanel7);
                // BuildDataGrid(GetObjectArrayList(@"E:\TDDOWNLOAD\设计模式\AbstractFactory\ObjectIdentity\xml\"), this.tabControlPanel8);
                BuildDataGrid(GetObjectArrayList(@"E:\TDDOWNLOAD\设计模式\AbstractFactory\ObjectIdentity\xml\building.xml"), this.tabControlPanel9);
            }

            /// <summary>
            /// 从xml中返回一个数组
            /// </summary>
            /// <param name="filePath"></param>
            /// <returns></returns>
            protected List<string[]> GetObjectArrayList(string filePath)
            {

                XmlDataDocument doc = new XmlDataDocument();
                doc.Load(filePath);
                List<string[]> arrList = new List<string[]>();
                if (doc != null)
                {
                    XmlNodeList nodeList = XmlOpre.FindNodeListByName("Object", doc.SelectSingleNode("ObjectList"));

                    foreach (XmlNode node in nodeList)
                    {
                        string[] result = {
                                              (node.SelectSingleNode("Symbol").InnerText+" "+ node.SelectSingleNode("No").InnerText),
                                                node.SelectSingleNode("objectID").InnerText ,
                                                node.SelectSingleNode("ObjectName").InnerText ,
                                                node.SelectSingleNode("ObjectType").InnerText
                                          };
                        arrList.Add(result);
                        //this.dataGridViewX1.Rows.Add(result, tabControlPanel3);
                    }
                }
                return arrList;
            }

            /// <summary>
            /// 传入数组,动态生成datagridview
            /// </summary>
            /// <param name="arrList"></param>
            /// <param name="tbPanel"></param>
            protected void BuildDataGrid(List<string[]> arrList, DevComponents.DotNetBar.TabControlPanel tbPanel)
            {
                DevComponents.DotNetBar.Controls.DataGridViewX datagrid = new DevComponents.DotNetBar.Controls.DataGridViewX();
                System.Windows.Forms.DataGridViewTextBoxColumn symbol = new DataGridViewTextBoxColumn(); ;
                System.Windows.Forms.DataGridViewTextBoxColumn objectID = new DataGridViewTextBoxColumn(); ;
                System.Windows.Forms.DataGridViewTextBoxColumn objectName = new DataGridViewTextBoxColumn(); ;
                System.Windows.Forms.DataGridViewTextBoxColumn objectType = new DataGridViewTextBoxColumn();

                symbol.DefaultCellStyle.Alignment = DataGridViewContentAlignment.BottomRight;
                symbol.DataPropertyName = "Symbol";
                symbol.HeaderText = "序号";
                symbol.Width = 50;
                symbol.ReadOnly = true;

                objectID.DataPropertyName = "objectID";
                objectID.HeaderText = "**";
                objectID.Width = 50;
                objectID.ReadOnly = true;


                objectName.DataPropertyName = "ObjectName";
                objectName.HeaderText = "名称";
                objectName.Width = 80;
                objectName.ReadOnly = true;

                objectType.DataPropertyName = "ObjectName";
                objectType.HeaderText = "类型";
                objectType.Width = 80;
                objectType.ReadOnly = true;


                datagrid.AutoGenerateColumns = false;
                datagrid.Dock = tbPanel.Dock;
                datagrid.Columns.Add(symbol);
                datagrid.Columns.Add(objectID);
                datagrid.Columns.Add(objectName);
                datagrid.Columns.Add(objectType);
                datagrid.RowHeadersVisible = false;
                datagrid.CellContentDoubleClick += new DataGridViewCellEventHandler(datagrid_CellContentDoubleClick);
                foreach (string[] result in arrList)
                {
                    datagrid.Rows.Add(result);
                }
                tbPanel.Controls.Add(datagrid);

            }


            /// <summary>
            /// datagridview双击事件
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            void datagrid_CellContentDoubleClick(object sender, DataGridViewCellEventArgs e)
            {
                DevComponents.DotNetBar.Controls.DataGridViewX datagrid = (DevComponents.DotNetBar.Controls.DataGridViewX)sender;

                string Symbol = datagrid.Rows[e.RowIndex].Cells[0].Value.ToString();
                string ObjectName = datagrid.Rows[e.RowIndex].Cells[1].Value.ToString();
                string ObjectType = datagrid.Rows[e.RowIndex].Cells[2].Value.ToString();
                MessageBox.Show(Symbol + " " + ObjectName + " " + ObjectType);

            }

  • 相关阅读:
    交换机模拟器
    bootstrap-分页-默认分页
    bootstrap-分页-默认分页
    bootstrap-分页-默认分页
    交易系统查询带上for update
    集成开发环境(IDE) Mix介绍
    Dapp及相关开发工具介绍
    区块链技术视频网站EthCast.com上线
    区块链:最小可行区块链原理解析1
    账户、交易核心概念及投注合约解析
  • 原文地址:https://www.cnblogs.com/qq4004229/p/2480714.html
Copyright © 2011-2022 走看看