110,538
社区成员
发帖
与我相关
我的任务
分享
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Drawing.Drawing2D;
namespace WindowsApplication217
{
public partial class Form1 : Form
{
TreeView TV = new TreeView();
public Form1()
{
InitializeComponent();
TV.Parent = this;
TV.Dock = DockStyle.Fill;
TV.ItemHeight = 30;
TreeNode Root = TV.Nodes.Add("根");
AddDeleteButtonChildNode(Root, "1");
AddDeleteButtonChildNode(Root, "2");
AddDeleteButtonChildNode(Root, "3");
TV.AfterExpand += new TreeViewEventHandler(TV_AfterExpand);
TV.AfterCollapse += new TreeViewEventHandler(TV_AfterCollapse);
}
void TV_AfterCollapse(object sender, TreeViewEventArgs e)
{
ChangeDeleteButtonVisible(e.Node, false);
}
void TV_AfterExpand(object sender, TreeViewEventArgs e)
{
ChangeDeleteButtonVisible(e.Node, true);
}
void ChangeDeleteButtonVisible(TreeNode ParentNode, bool Visible)
{
foreach (TreeNode ChildNode in ParentNode.Nodes)
{
Button B = (Button)ChildNode.Tag;
B.Location = ChildNode.Bounds.Location;
B.Left += ChildNode.Bounds.Width;
B.Visible = Visible;
}
}
void AddDeleteButtonChildNode(TreeNode ParentNode, String Text)
{
TreeNode Node = ParentNode.Nodes.Add(Text);
Button B = new Button();
B.Parent = TV;
B.Text = "删除";
B.Visible = false;
B.Click += new EventHandler(B_Click);
B.Tag = Node;
Node.Tag = B;
}
void B_Click(object sender, EventArgs e)
{
Button B = (Button)sender;
TreeNode Node = (TreeNode)B.Tag;
TreeNode ParentNode = Node.Parent;
B.Dispose();
Node.Remove();
ChangeDeleteButtonVisible(ParentNode, true); // 刷新重新定位按钮
}
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Drawing.Drawing2D;
namespace WindowsApplication217
{
public partial class Form1 : Form
{
TreeView TV = new TreeView();
public Form1()
{
InitializeComponent();
TV.Parent = this;
TV.Dock = DockStyle.Fill;
TV.ItemHeight = 30;
TreeNode Root=TV.Nodes.Add("根");
AddTextBoxChildNode(Root, "1");
AddTextBoxChildNode(Root, "2");
AddTextBoxChildNode(Root, "3");
TV.AfterExpand += new TreeViewEventHandler(TV_AfterExpand);
TV.AfterCollapse += new TreeViewEventHandler(TV_AfterCollapse);
}
void TV_AfterCollapse(object sender, TreeViewEventArgs e)
{
ChangeTextBoxVisible(e.Node,false);
}
void TV_AfterExpand(object sender, TreeViewEventArgs e)
{
ChangeTextBoxVisible(e.Node, true);
}
void ChangeTextBoxVisible(TreeNode ParentNode,bool Visible)
{
foreach (TreeNode ChildNode in ParentNode.Nodes)
{
TextBox TB = (TextBox)ChildNode.Tag;
TB.Location = ChildNode.Bounds . Location;
TB.Visible = Visible;
}
}
void AddTextBoxChildNode(TreeNode ParentNode, String Text)
{
TreeNode Node = ParentNode.Nodes.Add(Text);
TextBox TB = new TextBox();
TB.Parent = TV;
TB.Text = Text;
TB.Visible = false;
TB.TextChanged += new EventHandler(TB_TextChanged);
TB.Tag = Node;
Node.Tag = TB;
}
void TB_TextChanged(object sender, EventArgs e)
{
TextBox TB=(TextBox)sender;
TreeNode Node = (TreeNode)TB.Tag;
Node.Text = TB.Text;
}
}
}