using DevComponents.DotNetBar; using DXFLibrary; using GeoScene.Globe; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Diagnostics; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace Cyberpipe { public partial class FrmHongXianManage : Office2007Form { GSOGlobeControl _globeControl1; MyTreeView _layerTree; public FrmHongXianManage(GSOGlobeControl globeControl1, MyTreeView layerTree) { InitializeComponent(); ///////// 待实现 _globeControl1 = globeControl1; _layerTree = layerTree; } private void FrmFrmHongXianManage_Load(object sender, EventArgs e) { reloadGrid(); } private void reloadGrid() { string sql = "select LSSYS_ID,LSSYS_GEOTYPE,文件名称,导入时间 from 红线"; DataTable dt = OracleUtils.ExecuteDataset(OracleUtils.ConnectionString, CommandType.Text, sql).Tables[0]; dataGridViewX1.DataSource = dt; } private void dataGridViewX1_CellContentClick(object sender, DataGridViewCellEventArgs e) { Debug.WriteLine("dataGridViewX1_CellContentClick"); if (e.RowIndex < 0 || e.ColumnIndex < 0) { return; } string cell = dataGridViewX1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString(); if (cell.Equals("删除")) { try { string LSSYS_ID = dataGridViewX1.Rows[e.RowIndex].Cells["LSSYS_ID"].Value.ToString(); string fileName = dataGridViewX1.Rows[e.RowIndex].Cells["文件名称"].Value.ToString(); if (MessageBox.Show("确定删除?", "确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { // 删除数据库里的数据 string sql = "delete from 红线 where LSSYS_ID=" + LSSYS_ID; OracleUtils.ExecuteNonQuery(OracleUtils.ConnectionString, CommandType.Text, sql); reloadGrid(); // 删除左侧树节点 和 图层数据 // 获取 临时图层节点 TreeNode linShiTuCengNode = _layerTree.TopNode; foreach (TreeNode t in linShiTuCengNode.Nodes) { // 根据节点text 和 文件名 获得该节点 if (t.Text == fileName) { Debug.WriteLine(t.Text); if (!(t.Tag is GSOLayer)) return; GSOLayer tempLayer = t.Tag as GSOLayer; _globeControl1.Globe.Layers.Remove(tempLayer); _globeControl1.Globe.Refresh(); t.Remove(); break; } } //if (nodes[0] != null) //{ // nodes[0].Remove(); //} MessageBox.Show("删除成功!", "结果", MessageBoxButtons.OK, MessageBoxIcon.Information); } } catch (Exception ex) { MessageBox.Show("删除失败:" + ex, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } //递归查询,找到返回该节点 private TreeNode FindNode(TreeNode node, string name) { //接受返回的节点 TreeNode ret = null; //循环查找 foreach (TreeNode temp in node.Nodes) { //是否有子节点 if (temp.Nodes.Count != 0) { //如果找到 if ((ret = FindNode(temp, name)) != null) { return ret; } } //如果找到 if (string.Equals(temp.Text, name)) { return temp; } } return ret; } } }