配色: 字号:
TreeView控件与SQL数据库的应用(遍历算法)
2012-09-17 | 阅:  转:  |  分享 
  
开发环境:WinXPSP3,VS2008,SQL2000

TreeView控件与SQL数据库的应用(遍历算法)

(数据与TreeView的绑定及Treeview的增加、删除、修改、遍历等数据库的操作)



这个是数据库连接及一些操作数据库的方法,文件:SqlManager.cs

usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Data.SqlClient;usingSystem.Data;usingSystem.Windows.Forms;namespaceTreeViewText{classSqlManager{SqlConnectionconn;stringstrConn;publicSqlManager(){strConn=@"DataSource=.;InitialCatalog=TreeView;IntegratedSecurity=SSPI;PersistSecurityInfo=False;UserID=sa;Password=sa";conn=newSqlConnection(strConn);}publicDataSetGetDataSet(){DataSetds=newDataSet();SqlDataAdaptersda=newSqlDataAdapter(querySqlCmd,conn);try{conn.Open();sda.Fill(ds);}catch(Exceptionex){MessageBox.Show(ex.Message,"获取数据失败!");}finally{if(conn.State==ConnectionState.Open){conn.Close();}}returnds;}publicDataSetGetDataSet(stringsqlCmd){DataSetds=newDataSet();SqlDataAdapterda=newSqlDataAdapter(sqlCmd,conn);try{conn.Open();da.Fill(ds);}catch(Exceptionex){MessageBox.Show(ex.Message,"获取数据失败!");}finally{if(conn.State==ConnectionState.Open){conn.Close();}}returnds;}publicvoidRunSqlCommand(stringsqlCmd){SqlCommandcmd=newSqlCommand(sqlCmd,conn);try{conn.Open();cmd.ExecuteNonQuery();}catch(Exceptionex){MessageBox.Show(ex.Message,"操作数据库失败!");}finally{if(conn.State==ConnectionState.Open){conn.Close();}}}privatestringm_querySqlCmd;#region获取SQL语句publicstringquerySqlCmd{get{if(m_querySqlCmd==null){return"selectfromTreeNode";}returnquerySqlCmd;}set{m_querySqlCmd=value;}}#endregion}}

主窗体:Form1.cs

usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Windows.Forms;usingSystem.Data.SqlClient;namespaceTreeViewText{publicpartialclassForm1:Form{publicForm1(){InitializeComponent();}privatevoidForm1_Load(objectsender,EventArgse){//TreeNodetreeNode1=newTreeNode("节点1",newTreeNode[]{treeNode4,treeNode5});//treeView1.Nodes.AddRange(newTreeNode[]{treeNode1});}#regionTreeView节点编辑(没有修改数据库)privatevoidbtnEdit_Click(objectsender,EventArgse){if(treeView1.SelectedNode!=null)if(!treeView1.SelectedNode.IsEditing)treeView1.SelectedNode.BeginEdit();}privatevoidbtnDelete_Click(objectsender,EventArgse){if(treeView1.SelectedNode!=null)treeView1.SelectedNode.Remove();}privatevoidbtnAddNode_Click(objectsender,EventArgse){TreeNodetreeNodeTemp=newTreeNode(GetNodeText());if(treeView1.Nodes.Count>0){if(treeView1.SelectedNode!=null){if(treeView1.SelectedNode.Parent!=null)treeView1.SelectedNode.Parent.Nodes.Add(treeNodeTemp);elsetreeView1.Nodes.Add(treeNodeTemp);}}else{treeView1.Nodes.Add(treeNodeTemp);}}privatevoidbtnAddChild_Click(objectsender,EventArgse){TreeNodetreeNodeTemp=newTreeNode(GetNodeText());if(treeView1.SelectedNode!=null){treeView1.SelectedNode.Nodes.Add(treeNodeTemp);}}#region获取文本框文本信息//////获取文本框文本信息//////stringprivatestringGetNodeText(){if(!String.IsNullOrEmpty(tbNodeName.Text.Trim()))returntbNodeName.Text.Trim();return"TreeNode";}#endregion#endregion//////查询数据/////////privatevoidbtnQuery_Click(objectsender,EventArgse){SqlManagersqlManager=newSqlManager();dataGridView1.DataSource=sqlManager.GetDataSet(sqlManager.querySqlCmd).Tables[0];//清空TreeView的内容treeView1.Nodes.Clear();//递归函数,0为根节点的父节点ParentID的值AddTreeView(0,(TreeNode)null);//非递归(两层分类显示)//ShowTreeView((TreeNode)null);//展开所有树节点//treeView1.Expand();}//////退出程序/////////privatevoidbtnExit_Click(objectsender,EventArgse){this.Close();}#region获得数据库信息放入TreeView中(递归)privatevoidAddTreeView(intParentID,TreeNodeparentNode){SqlManagersqlManager=newSqlManager();DataViewdataTree=newDataView(sqlManager.GetDataSet().Tables[0]);stringfilter="ParentID="+ParentID;dataTree.RowFilter=filter;foreach(DataRowViewrowindataTree){TreeNodenode=newTreeNode();//处理根节点if(parentNode==null){node.Name=row["ID"].ToString();node.Text=row["Name"].ToString();treeView1.Nodes.Add(node);AddTreeView(Int32.Parse(row["ID"].ToString().Trim()),node);}//处理子节点else{node.Name=row["ID"].ToString();node.Text=row["Name"].ToString();parentNode.Nodes.Add(node);AddTreeView(Int32.Parse(row["ID"].ToString().Trim()),node);}}}#endregion#region获得数据库信息放入TreeView中(非递归函数,根据Category来分类,仅支持两层分类)/privatevoidShowTreeView(TreeNodepNode){treeView1.Nodes.Clear();SqlManagersqlManager=newSqlManager();DataViewdataTree=newDataView(sqlManager.GetDataSet("selectdistinctCategoryfromTreeNode").Tables[0]);foreach(DataRowViewrowindataTree){TreeNodenode=newTreeNode();node.Text=row["Category"].ToString();treeView1.Nodes.Add(node);CreateChildNodes(node);}}//获取第二层节点的的数据privatevoidCreateChildNodes(TreeNodetreenode){SqlManagersqlManager=newSqlManager();DataViewdataTree=newDataView(sqlManager.GetDataSet().Tables[0]);dataTree.RowFilter="Category=''"+treenode.Text+"''";foreach(DataRowViewrowindataTree){TreeNodenode=newTreeNode();node.Text=row["Name"].ToString();treenode.Nodes.Add(node);}}/#endregion//////添加记录/////////privatevoidbtnAdd_Click(objectsender,EventArgse){SqlManagersqlManager=newSqlManager();stringinsertSqlCmd=String.Empty;if(TextBoxValidator(tbParentID)){MessageBox.Show("请输入ParentID(父节点)","提示");tbParentID.Focus();}elseif(TextBoxValidator(tbName)){MessageBox.Show("请输入Name(物品名称)","提示");tbName.Focus();}elseif(TextBoxValidator(tbCategory)){MessageBox.Show("请输入Category(物品类别)","提示");tbCategory.Focus();}else{insertSqlCmd="insertintoTreeNode(ParentID,Name,Category)values("+tbParentID.Text.Trim()+",''"+tbName.Text.Trim()+"'',''"+tbCategory.Text.Trim()+"'');";sqlManager.RunSqlCommand(insertSqlCmd);dataGridView1.DataSource=sqlManager.GetDataSet(sqlManager.querySqlCmd).Tables[0];treeView1.Nodes.Clear();AddTreeView(0,(TreeNode)null);//treeView1.ExpandAll();}}//////修改记录/////////privatevoidbtnModify_Click(objectsender,EventArgse){SqlManagersqlManager=newSqlManager();stringupdateSqlCmd=String.Empty;if(TextBoxValidator(tbID))MessageBox.Show("请先选择一个产品","提示");elseif(TextBoxValidator(tbParentID)){MessageBox.Show("请输入ParentID(父节点)","提示");tbParentID.Focus();}elseif(tbID.Text.Trim()==tbParentID.Text.Trim()){MessageBox.Show("ID(产品ID)不能与ParentID(父节点)相同,请重新输入","提示");tbParentID.Focus();}elseif(TextBoxValidator(tbName)){MessageBox.Show("请输入Name(物品名称)","提示");tbName.Focus();}elseif(TextBoxValidator(tbCategory)){MessageBox.Show("请输入Category(物品类别)","提示");tbCategory.Focus();}else{updateSqlCmd="updateTreeNodesetParentID="+tbParentID.Text.Trim()+",Name=''"+tbName.Text.Trim()+"'',Category=''"+tbCategory.Text.Trim()+"''whereID="+tbID.Text.Trim()+";";sqlManager.RunSqlCommand(updateSqlCmd);dataGridView1.DataSource=sqlManager.GetDataSet(sqlManager.querySqlCmd).Tables[0];treeView1.Nodes.Clear();AddTreeView(0,(TreeNode)null);//treeView1.ExpandAll();}}//////删除记录/////////privatevoidbtnRemove_Click(objectsender,EventArgse){if(treeView1.SelectedNode!=null){TreeNodenode=treeView1.SelectedNode;//删除所选节点及其所有子节点DeleteTreeNode(node);SqlManagersqlManager=newSqlManager();dataGridView1.DataSource=sqlManager.GetDataSet(sqlManager.querySqlCmd).Tables[0];}}//////删除所选节点及其所有子节点(通过遍历节点删除对应的数据库数据)//////privatevoidDeleteTreeNode(TreeNodeparentNode){/方法一:删除选中节点及其所有子节点/intchildCount=parentNode.Nodes.Count;for(inti=0;i0){DeleteTreeNode(childNode);}else{DeleteNodeData(childNode);childNode.Remove();}}if(parentNode.Nodes.Count==0){DeleteNodeData(parentNode);parentNode.Remove();}/方法二:删除选中节点及其所有子节点///TreeNodeCollectiontreeNodeCollection=parentNode.Nodes;//intcount=treeNodeCollection.Count;//for(inti=0;i0)//{//DeleteTreeNode(node);//}//else//{//DeleteNodeData(node);//node.Remove();//}//}//if(treeNodeCollection.Count==0)//{//DeleteNodeData(parentNode);//parentNode.Remove();//}}//////方法三:删除选中节点的所有子节点(选中的主节点不会被删除)//////privatevoidDeleteTreeNodeWithoutPareNode(TreeNodeparentNode){intcount=parentNode.Nodes.Count;for(inti=0;i///将要删除的节点传给该函数,利用节点的Name属性(ID)删除数据库数据//////privatevoidDeleteNodeData(TreeNodenode){SqlManagersqlManager=newSqlManager();stringdeleteSqlCmd=String.Empty;deleteSqlCmd="deletefromTreeNodewhereID="+node.Name;sqlManager.RunSqlCommand(deleteSqlCmd);}//////检查TextBox的Text属性是否为空或没有字符/////////true/falseprivateboolTextBoxValidator(objectsender){if(String.IsNullOrEmpty(((TextBox)sender).Text))returntrue;elsereturnfalse;}//////TreeView中节点选择事件,用来将数据放入TextBox/////////privatevoidtreeView1_AfterSelect(objectsender,TreeViewEventArgse){stringtreeNodeID=treeView1.SelectedNode.Name;SqlManagersqlManager=newSqlManager();DataTabledt;dt=sqlManager.GetDataSet("selectfromTreeNodewhereID=''"+treeNodeID+"''").Tables[0];if(dt.Rows.Count>0){tbID.Text=dt.Rows[0]["ID"].ToString();tbParentID.Text=dt.Rows[0]["ParentID"].ToString();tbName.Text=dt.Rows[0]["Name"].ToString();tbCategory.Text=dt.Rows[0]["Category"].ToString();}}privatevoiddataGridView1_SelectionChanged(objectsender,EventArgse){if(dataGridView1.SelectedCells.Count!=0){tbID.Text=dataGridView1.CurrentRow.Cells["ID"].Value.ToString();tbParentID.Text=dataGridView1.CurrentRow.Cells["ParentID"].Value.ToString();tbName.Text=dataGridView1.CurrentRow.Cells["Name"].Value.ToString();tbCategory.Text=dataGridView1.CurrentRow.Cells["Category"].Value.ToString();}}privatevoid展开下一层节点ToolStripMenuItem_Click(objectsender,EventArgse){if(treeView1.SelectedNode!=null){treeView1.SelectedNode.Expand();}}privatevoid展开所有节点ToolStripMenuItem_Click(objectsender,EventArgse){if(treeView1.SelectedNode!=null){treeView1.SelectedNode.ExpandAll();}}privatevoid选中节点的所有子节点ToolStripMenuItem_Click(objectsender,EventArgse){if(treeView1.SelectedNode!=null){TreeNodenode=treeView1.SelectedNode;//删除所选节点的所有子节点DeleteTreeNodeWithoutPareNode(node);SqlManagersqlManager=newSqlManager();dataGridView1.DataSource=sqlManager.GetDataSet(sqlManager.querySqlCmd).Tables[0];}}privatevoid节点及其所有子节点ToolStripMenuItem_Click(objectsender,EventArgse){btnRemove_Click(null,null);}privatevoidtreeView1_MouseDown(objectsender,MouseEventArgse){if(e.Button==MouseButtons.Right){TreeNodetreenode=treeView1.GetNodeAt(e.X,e.Y);if(treenode!=null&&treenode.Bounds.Contains(e.X,e.Y)){treeView1.SelectedNode=treenode;}else{treeView1.SelectedNode=null;}}}}}

?Form1.Designer.cs文件:?

namespaceTreeViewText {

????partialclassForm1 ????{

????????/// ????????///必需的设计器变量。

????????///
????????privateSystem.ComponentModel.IContainercomponents=null;

?? ????????///

????????///清理所有正在使用的资源。 ????????///


????????///如果应释放托管资源,为true;否则为false。 ????????protectedoverridevoidDispose(booldisposing)

????????{ ????????????if(disposing&&(components!=null))

????????????{ ????????????????components.Dispose();

????????????} ????????????base.Dispose(disposing);

????????} ??

????????#regionWindows窗体设计器生成的代码 ??

????????/// ????????///设计器支持所需的方法-不要

????????///使用代码编辑器修改此方法的内容。 ????????///


????????privatevoidInitializeComponent() ????????{

????????????this.components=newSystem.ComponentModel.Container(); ????????????System.Windows.Forms.DataGridViewCellStyledataGridViewCellStyle1=newSystem.Windows.Forms.DataGridViewCellStyle();

????????????System.Windows.Forms.DataGridViewCellStyledataGridViewCellStyle2=newSystem.Windows.Forms.DataGridViewCellStyle(); ????????????System.Windows.Forms.DataGridViewCellStyledataGridViewCellStyle3=newSystem.Windows.Forms.DataGridViewCellStyle();

????????????this.treeView1=newSystem.Windows.Forms.TreeView(); ????????????this.contextMenuStrip1=newSystem.Windows.Forms.ContextMenuStrip(this.components);

????????????this.展开树ToolStripMenuItem=newSystem.Windows.Forms.ToolStripMenuItem(); ????????????this.展开所有节点ToolStripMenuItem=newSystem.Windows.Forms.ToolStripMenuItem();

????????????this.删除ToolStripMenuItem=newSystem.Windows.Forms.ToolStripMenuItem(); ????????????this.节点ToolStripMenuItem=newSystem.Windows.Forms.ToolStripMenuItem();

????????????this.节点及其所有子节点ToolStripMenuItem=newSystem.Windows.Forms.ToolStripMenuItem(); ????????????this.label1=newSystem.Windows.Forms.Label();

????????????this.btnDelete=newSystem.Windows.Forms.Button(); ????????????this.btnAddNode=newSystem.Windows.Forms.Button();

????????????this.btnAddChild=newSystem.Windows.Forms.Button(); ????????????this.label2=newSystem.Windows.Forms.Label();

????????????this.dataGridView1=newSystem.Windows.Forms.DataGridView(); ????????????this.btnQuery=newSystem.Windows.Forms.Button();

????????????this.btnExit=newSystem.Windows.Forms.Button(); ????????????this.btnEdit=newSystem.Windows.Forms.Button();

????????????this.tbNodeName=newSystem.Windows.Forms.TextBox(); ????????????this.label3=newSystem.Windows.Forms.Label();

????????????this.btnModify=newSystem.Windows.Forms.Button(); ????????????this.btnRemove=newSystem.Windows.Forms.Button();

????????????this.btnAdd=newSystem.Windows.Forms.Button(); ????????????this.tbID=newSystem.Windows.Forms.TextBox();

????????????this.tbName=newSystem.Windows.Forms.TextBox(); ????????????this.tbCategory=newSystem.Windows.Forms.TextBox();

????????????this.label4=newSystem.Windows.Forms.Label(); ????????????this.label5=newSystem.Windows.Forms.Label();

????????????this.label6=newSystem.Windows.Forms.Label(); ????????????this.tbParentID=newSystem.Windows.Forms.TextBox();

????????????this.label7=newSystem.Windows.Forms.Label(); ????????????this.panel1=newSystem.Windows.Forms.Panel();

????????????this.contextMenuStrip1.SuspendLayout(); ????????????((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).BeginInit();

????????????this.panel1.SuspendLayout(); ????????????this.SuspendLayout();

????????????//? ????????????//treeView1

????????????//? ????????????this.treeView1.ContextMenuStrip=this.contextMenuStrip1;

????????????this.treeView1.HideSelection=false; ????????????this.treeView1.LabelEdit=true;

????????????this.treeView1.Location=newSystem.Drawing.Point(12,24); ????????????this.treeView1.Name="treeView1";

????????????this.treeView1.Size=newSystem.Drawing.Size(208,326); ????????????this.treeView1.TabIndex=0;

????????????this.treeView1.AfterSelect+=newSystem.Windows.Forms.TreeViewEventHandler(this.treeView1_AfterSelect); ????????????this.treeView1.MouseDown+=newSystem.Windows.Forms.MouseEventHandler(this.treeView1_MouseDown);

????????????//? ????????????//contextMenuStrip1

????????????//? ????????????this.contextMenuStrip1.Items.AddRange(newSystem.Windows.Forms.ToolStripItem[]{

????????????this.展开树ToolStripMenuItem, ????????????this.展开所有节点ToolStripMenuItem,

????????????this.删除ToolStripMenuItem}); ????????????this.contextMenuStrip1.Name="contextMenuStrip1";

????????????this.contextMenuStrip1.ShowImageMargin=false; ????????????this.contextMenuStrip1.Size=newSystem.Drawing.Size(130,70);

????????????//? ????????????//展开树ToolStripMenuItem

????????????//? ????????????this.展开树ToolStripMenuItem.Name="展开树ToolStripMenuItem";

????????????this.展开树ToolStripMenuItem.Size=newSystem.Drawing.Size(129,22); ????????????this.展开树ToolStripMenuItem.Text="展开下一层节点";

????????????this.展开树ToolStripMenuItem.Click+=newSystem.EventHandler(this.展开下一层节点ToolStripMenuItem_Click); ????????????//?

????????????//展开所有节点ToolStripMenuItem ????????????//?

????????????this.展开所有节点ToolStripMenuItem.Name="展开所有节点ToolStripMenuItem"; ????????????this.展开所有节点ToolStripMenuItem.Size=newSystem.Drawing.Size(129,22);

????????????this.展开所有节点ToolStripMenuItem.Text="展开所有子节点"; ????????????this.展开所有节点ToolStripMenuItem.Click+=newSystem.EventHandler(this.展开所有节点ToolStripMenuItem_Click);

????????????//? ????????????//删除ToolStripMenuItem

????????????//? ????????????this.删除ToolStripMenuItem.DropDownItems.AddRange(newSystem.Windows.Forms.ToolStripItem[]{

????????????this.节点ToolStripMenuItem, ????????????this.节点及其所有子节点ToolStripMenuItem});

????????????this.删除ToolStripMenuItem.Name="删除ToolStripMenuItem"; ????????????this.删除ToolStripMenuItem.Size=newSystem.Drawing.Size(129,22);

????????????this.删除ToolStripMenuItem.Text="删除节点->"; ????????????//?

????????????//节点ToolStripMenuItem ????????????//?

????????????this.节点ToolStripMenuItem.Name="节点ToolStripMenuItem"; ????????????this.节点ToolStripMenuItem.Size=newSystem.Drawing.Size(202,22);

????????????this.节点ToolStripMenuItem.Text="选中节点的所有子节点"; ????????????this.节点ToolStripMenuItem.Click+=newSystem.EventHandler(this.选中节点的所有子节点ToolStripMenuItem_Click);

????????????//? ????????????//节点及其所有子节点ToolStripMenuItem

????????????//? ????????????this.节点及其所有子节点ToolStripMenuItem.Name="节点及其所有子节点ToolStripMenuItem";

????????????this.节点及其所有子节点ToolStripMenuItem.Size=newSystem.Drawing.Size(202,22); ????????????this.节点及其所有子节点ToolStripMenuItem.Text="选中节点及其所有子节点";

????????????this.节点及其所有子节点ToolStripMenuItem.Click+=newSystem.EventHandler(this.节点及其所有子节点ToolStripMenuItem_Click); ????????????//?

????????????//label1 ????????????//?

????????????this.label1.AutoSize=true; ????????????this.label1.Location=newSystem.Drawing.Point(12,9);

????????????this.label1.Name="label1"; ????????????this.label1.Size=newSystem.Drawing.Size(41,12);

????????????this.label1.TabIndex=1; ????????????this.label1.Text="节点:";

????????????//? ????????????//btnDelete

????????????//? ????????????this.btnDelete.Enabled=false;

????????????this.btnDelete.Location=newSystem.Drawing.Point(113,370); ????????????this.btnDelete.Name="btnDelete";

????????????this.btnDelete.Size=newSystem.Drawing.Size(75,23); ????????????this.btnDelete.TabIndex=16;

????????????this.btnDelete.Text="删除"; ????????????this.btnDelete.UseVisualStyleBackColor=true;

????????????this.btnDelete.Click+=newSystem.EventHandler(this.btnDelete_Click); ????????????//?

????????????//btnAddNode ????????????//?

????????????this.btnAddNode.Location=newSystem.Drawing.Point(5,30); ????????????this.btnAddNode.Name="btnAddNode";

????????????this.btnAddNode.Size=newSystem.Drawing.Size(75,23); ????????????this.btnAddNode.TabIndex=20;

????????????this.btnAddNode.Text="添加根"; ????????????this.btnAddNode.UseVisualStyleBackColor=true;

????????????this.btnAddNode.Click+=newSystem.EventHandler(this.btnAddNode_Click); ????????????//?

????????????//btnAddChild ????????????//?

????????????this.btnAddChild.Location=newSystem.Drawing.Point(99,30); ????????????this.btnAddChild.Name="btnAddChild";

????????????this.btnAddChild.Size=newSystem.Drawing.Size(75,23); ????????????this.btnAddChild.TabIndex=21;

????????????this.btnAddChild.Text="添加子级"; ????????????this.btnAddChild.UseVisualStyleBackColor=true;

????????????this.btnAddChild.Click+=newSystem.EventHandler(this.btnAddChild_Click); ????????????//?

????????????//label2 ????????????//?

????????????this.label2.AutoSize=true; ????????????this.label2.Location=newSystem.Drawing.Point(224,9);

????????????this.label2.Name="label2"; ????????????this.label2.Size=newSystem.Drawing.Size(65,12);

????????????this.label2.TabIndex=7; ????????????this.label2.Text="节点信息:";

????????????//? ????????????//dataGridView1

????????????//? ????????????this.dataGridView1.AllowUserToAddRows=false;

????????????this.dataGridView1.AllowUserToDeleteRows=false; ????????????this.dataGridView1.Anchor=((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top|System.Windows.Forms.AnchorStyles.Left)

????????????????????????|System.Windows.Forms.AnchorStyles.Right))); ????????????this.dataGridView1.BackgroundColor=System.Drawing.SystemColors.Window;

????????????dataGridViewCellStyle1.Alignment=System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; ????????????dataGridViewCellStyle1.BackColor=System.Drawing.SystemColors.Control;

????????????dataGridViewCellStyle1.Font=newSystem.Drawing.Font("宋体",9F,System.Drawing.FontStyle.Regular,System.Drawing.GraphicsUnit.Point,((byte)(134))); ????????????dataGridViewCellStyle1.ForeColor=System.Drawing.SystemColors.WindowText;

????????????dataGridViewCellStyle1.SelectionBackColor=System.Drawing.SystemColors.Highlight; ????????????dataGridViewCellStyle1.SelectionForeColor=System.Drawing.SystemColors.HighlightText;

????????????dataGridViewCellStyle1.WrapMode=System.Windows.Forms.DataGridViewTriState.True; ????????????this.dataGridView1.ColumnHeadersDefaultCellStyle=dataGridViewCellStyle1;

????????????this.dataGridView1.ColumnHeadersHeightSizeMode=System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; ????????????dataGridViewCellStyle2.Alignment=System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;

????????????dataGridViewCellStyle2.BackColor=System.Drawing.SystemColors.Window; ????????????dataGridViewCellStyle2.Font=newSystem.Drawing.Font("宋体",9F,System.Drawing.FontStyle.Regular,System.Drawing.GraphicsUnit.Point,((byte)(134)));

????????????dataGridViewCellStyle2.ForeColor=System.Drawing.SystemColors.ControlText; ????????????dataGridViewCellStyle2.SelectionBackColor=System.Drawing.SystemColors.Highlight;

????????????dataGridViewCellStyle2.SelectionForeColor=System.Drawing.SystemColors.HighlightText; ????????????dataGridViewCellStyle2.WrapMode=System.Windows.Forms.DataGridViewTriState.False;

????????????this.dataGridView1.DefaultCellStyle=dataGridViewCellStyle2; ????????????this.dataGridView1.Location=newSystem.Drawing.Point(226,24);

????????????this.dataGridView1.Name="dataGridView1"; ????????????this.dataGridView1.ReadOnly=true;

????????????dataGridViewCellStyle3.Alignment=System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; ????????????dataGridViewCellStyle3.BackColor=System.Drawing.SystemColors.Control;

????????????dataGridViewCellStyle3.Font=newSystem.Drawing.Font("宋体",9F,System.Drawing.FontStyle.Regular,System.Drawing.GraphicsUnit.Point,((byte)(134))); ????????????dataGridViewCellStyle3.ForeColor=System.Drawing.SystemColors.WindowText;

????????????dataGridViewCellStyle3.SelectionBackColor=System.Drawing.SystemColors.Highlight; ????????????dataGridViewCellStyle3.SelectionForeColor=System.Drawing.SystemColors.HighlightText;

????????????dataGridViewCellStyle3.WrapMode=System.Windows.Forms.DataGridViewTriState.True; ????????????this.dataGridView1.RowHeadersDefaultCellStyle=dataGridViewCellStyle3;

????????????this.dataGridView1.RowTemplate.Height=23; ????????????this.dataGridView1.Size=newSystem.Drawing.Size(346,326);

????????????this.dataGridView1.TabIndex=1; ????????????this.dataGridView1.SelectionChanged+=newSystem.EventHandler(this.dataGridView1_SelectionChanged);

????????????//? ????????????//btnQuery

????????????//? ????????????this.btnQuery.Location=newSystem.Drawing.Point(226,370);

????????????this.btnQuery.Name="btnQuery"; ????????????this.btnQuery.Size=newSystem.Drawing.Size(75,44);

????????????this.btnQuery.TabIndex=2; ????????????this.btnQuery.Text="查询(&S)";

????????????this.btnQuery.UseVisualStyleBackColor=true; ????????????this.btnQuery.Click+=newSystem.EventHandler(this.btnQuery_Click);

????????????//? ????????????//btnExit

????????????//? ????????????this.btnExit.Location=newSystem.Drawing.Point(226,429);

????????????this.btnExit.Name="btnExit"; ????????????this.btnExit.Size=newSystem.Drawing.Size(75,44);

????????????this.btnExit.TabIndex=3; ????????????this.btnExit.Text="退出(&C)";

????????????this.btnExit.UseVisualStyleBackColor=true; ????????????this.btnExit.Click+=newSystem.EventHandler(this.btnExit_Click);

????????????//? ????????????//btnEdit

????????????//? ????????????this.btnEdit.Enabled=false;

????????????this.btnEdit.Location=newSystem.Drawing.Point(19,370); ????????????this.btnEdit.Name="btnEdit";

????????????this.btnEdit.Size=newSystem.Drawing.Size(75,23); ????????????this.btnEdit.TabIndex=15;

????????????this.btnEdit.Text="编辑"; ????????????this.btnEdit.UseVisualStyleBackColor=true;

????????????this.btnEdit.Click+=newSystem.EventHandler(this.btnEdit_Click); ????????????//?

????????????//tbNodeName ????????????//?

????????????this.tbNodeName.Location=newSystem.Drawing.Point(74,3); ????????????this.tbNodeName.Name="tbNodeName";

????????????this.tbNodeName.Size=newSystem.Drawing.Size(100,21); ????????????this.tbNodeName.TabIndex=19;

????????????//? ????????????//label3

????????????//? ????????????this.label3.AutoSize=true;

????????????this.label3.Location=newSystem.Drawing.Point(3,6); ????????????this.label3.Name="label3";

????????????this.label3.Size=newSystem.Drawing.Size(65,12); ????????????this.label3.TabIndex=18;

????????????this.label3.Text="节点名称:"; ????????????//?

????????????//btnModify ????????????//?

????????????this.btnModify.Location=newSystem.Drawing.Point(409,464); ????????????this.btnModify.Name="btnModify";

????????????this.btnModify.Size=newSystem.Drawing.Size(75,23); ????????????this.btnModify.TabIndex=13;

????????????this.btnModify.Text="修改(&M)"; ????????????this.btnModify.UseVisualStyleBackColor=true;

????????????this.btnModify.Click+=newSystem.EventHandler(this.btnModify_Click); ????????????//?

????????????//btnRemove ????????????//?

????????????this.btnRemove.Location=newSystem.Drawing.Point(490,464); ????????????this.btnRemove.Name="btnRemove";

????????????this.btnRemove.Size=newSystem.Drawing.Size(75,23); ????????????this.btnRemove.TabIndex=14;

????????????this.btnRemove.Text="删除(&D)"; ????????????this.btnRemove.UseVisualStyleBackColor=true;

????????????this.btnRemove.Click+=newSystem.EventHandler(this.btnRemove_Click); ????????????//?

????????????//btnAdd ????????????//?

????????????this.btnAdd.Location=newSystem.Drawing.Point(328,464); ????????????this.btnAdd.Name="btnAdd";

????????????this.btnAdd.Size=newSystem.Drawing.Size(75,23); ????????????this.btnAdd.TabIndex=12;

????????????this.btnAdd.Text="新增(&A)"; ????????????this.btnAdd.UseVisualStyleBackColor=true;

????????????this.btnAdd.Click+=newSystem.EventHandler(this.btnAdd_Click); ????????????//?

????????????//tbID ????????????//?

????????????this.tbID.Location=newSystem.Drawing.Point(465,356); ????????????this.tbID.Name="tbID";

????????????this.tbID.ReadOnly=true; ????????????this.tbID.Size=newSystem.Drawing.Size(100,21);

????????????this.tbID.TabIndex=5; ????????????//?

????????????//tbName ????????????//?

????????????this.tbName.Location=newSystem.Drawing.Point(465,410); ????????????this.tbName.Name="tbName";

????????????this.tbName.Size=newSystem.Drawing.Size(100,21); ????????????this.tbName.TabIndex=9;

????????????//? ????????????//tbCategory

????????????//? ????????????this.tbCategory.Location=newSystem.Drawing.Point(465,437);

????????????this.tbCategory.Name="tbCategory"; ????????????this.tbCategory.Size=newSystem.Drawing.Size(100,21);

????????????this.tbCategory.TabIndex=11; ????????????//?

????????????//label4 ????????????//?

????????????this.label4.AutoSize=true; ????????????this.label4.Location=newSystem.Drawing.Point(382,359);

????????????this.label4.Name="label4"; ????????????this.label4.Size=newSystem.Drawing.Size(77,12);

????????????this.label4.TabIndex=4; ????????????this.label4.Text="ID(产品ID):";

????????????//? ????????????//label5

????????????//? ????????????this.label5.AutoSize=true;

????????????this.label5.Location=newSystem.Drawing.Point(358,413); ????????????this.label5.Name="label5";

????????????this.label5.Size=newSystem.Drawing.Size(101,12); ????????????this.label5.TabIndex=8;

????????????this.label5.Text="Name(物品名称):"; ????????????//?

????????????//label6 ????????????//?

????????????this.label6.AutoSize=true; ????????????this.label6.Location=newSystem.Drawing.Point(334,440);

????????????this.label6.Name="label6"; ????????????this.label6.Size=newSystem.Drawing.Size(125,12);

????????????this.label6.TabIndex=10; ????????????this.label6.Text="Category(物品类别):";

????????????//? ????????????//tbParentID

????????????//? ????????????this.tbParentID.Location=newSystem.Drawing.Point(465,383);

????????????this.tbParentID.Name="tbParentID"; ????????????this.tbParentID.Size=newSystem.Drawing.Size(100,21);

????????????this.tbParentID.TabIndex=7; ????????????//?

????????????//label7 ????????????//?

????????????this.label7.AutoSize=true; ????????????this.label7.Location=newSystem.Drawing.Point(346,386);

????????????this.label7.Name="label7"; ????????????this.label7.Size=newSystem.Drawing.Size(113,12);

????????????this.label7.TabIndex=6; ????????????this.label7.Text="ParentID(父节点):";

????????????//? ????????????//panel1

????????????//? ????????????this.panel1.Controls.Add(this.label3);

????????????this.panel1.Controls.Add(this.btnAddNode); ????????????this.panel1.Controls.Add(this.btnAddChild);

????????????this.panel1.Controls.Add(this.tbNodeName); ????????????this.panel1.Enabled=false;

????????????this.panel1.Location=newSystem.Drawing.Point(14,410); ????????????this.panel1.Name="panel1";

????????????this.panel1.Size=newSystem.Drawing.Size(177,56); ????????????this.panel1.TabIndex=17;

????????????//? ????????????//Form1

????????????//? ????????????this.AcceptButton=this.btnQuery;

????????????this.AutoScaleDimensions=newSystem.Drawing.SizeF(6F,12F); ????????????this.AutoScaleMode=System.Windows.Forms.AutoScaleMode.Font;

????????????this.ClientSize=newSystem.Drawing.Size(577,496); ????????????this.Controls.Add(this.panel1);

????????????this.Controls.Add(this.label6); ????????????this.Controls.Add(this.label5);

????????????this.Controls.Add(this.label7); ????????????this.Controls.Add(this.label4);

????????????this.Controls.Add(this.tbCategory); ????????????this.Controls.Add(this.tbName);

????????????this.Controls.Add(this.tbParentID); ????????????this.Controls.Add(this.tbID);

????????????this.Controls.Add(this.btnAdd); ????????????this.Controls.Add(this.btnRemove);

????????????this.Controls.Add(this.btnModify); ????????????this.Controls.Add(this.btnEdit);

????????????this.Controls.Add(this.btnExit); ????????????this.Controls.Add(this.btnQuery);

????????????this.Controls.Add(this.dataGridView1); ????????????this.Controls.Add(this.label2);

????????????this.Controls.Add(this.btnDelete); ????????????this.Controls.Add(this.label1);

????????????this.Controls.Add(this.treeView1); ????????????this.Name="Form1";

????????????this.Text="TreeViewTextbydanch744"; ????????????this.Load+=newSystem.EventHandler(this.Form1_Load);

????????????this.contextMenuStrip1.ResumeLayout(false); ????????????((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).EndInit();

????????????this.panel1.ResumeLayout(false); ????????????this.panel1.PerformLayout();

????????????this.ResumeLayout(false); ????????????this.PerformLayout();

?? ????????}

?? ????????#endregion

?? ????????privateSystem.Windows.Forms.TreeViewtreeView1;

????????privateSystem.Windows.Forms.Labellabel1; ????????privateSystem.Windows.Forms.ButtonbtnDelete;

????????privateSystem.Windows.Forms.ButtonbtnAddNode; ????????privateSystem.Windows.Forms.ButtonbtnAddChild;

????????privateSystem.Windows.Forms.Labellabel2; ????????privateSystem.Windows.Forms.DataGridViewdataGridView1;

????????privateSystem.Windows.Forms.ButtonbtnQuery; ????????privateSystem.Windows.Forms.ButtonbtnExit;

????????privateSystem.Windows.Forms.ButtonbtnEdit; ????????privateSystem.Windows.Forms.TextBoxtbNodeName;

????????privateSystem.Windows.Forms.Labellabel3; ????????privateSystem.Windows.Forms.ButtonbtnModify;

????????privateSystem.Windows.Forms.ButtonbtnRemove; ????????privateSystem.Windows.Forms.ButtonbtnAdd;

????????privateSystem.Windows.Forms.TextBoxtbID; ????????privateSystem.Windows.Forms.TextBoxtbName;

????????privateSystem.Windows.Forms.TextBoxtbCategory; ????????privateSystem.Windows.Forms.Labellabel4;

????????privateSystem.Windows.Forms.Labellabel5; ????????privateSystem.Windows.Forms.Labellabel6;

????????privateSystem.Windows.Forms.TextBoxtbParentID; ????????privateSystem.Windows.Forms.Labellabel7;

????????privateSystem.Windows.Forms.Panelpanel1; ????????privateSystem.Windows.Forms.ContextMenuStripcontextMenuStrip1;

????????privateSystem.Windows.Forms.ToolStripMenuItem展开树ToolStripMenuItem; ????????privateSystem.Windows.Forms.ToolStripMenuItem节点ToolStripMenuItem;

????????privateSystem.Windows.Forms.ToolStripMenuItem节点及其所有子节点ToolStripMenuItem; ????????privateSystem.Windows.Forms.ToolStripMenuItem删除ToolStripMenuItem;

????????privateSystem.Windows.Forms.ToolStripMenuItem展开所有节点ToolStripMenuItem; ??

?? ????}

} 上面的那个图标显示代码。另外说一下,数据库的定义就在那张图片那样定义,主键是ID,ID和ParentID都是int,其余两个都是nvarchar,数据库名:TreeView,



献花(0)
+1
(本文系闫志飞166首藏)