强烈强烈请求知道的人说一下下
我在TreeView的字节点当中,能不能添加一个控件
类似 -- --A(父结点)
B(子结点) X(button)-控件然后能X控件的事件控制子节点的删除。。
我在TreeView的字节点当中,能不能添加一个控件
类似 -- --A(父结点)
B(子结点) X(button)-控件然后能X控件的事件控制子节点的删除。。
解决方案 »
- 字符串和汉字互转 马上给分
- c# 求助
- C#提示信息问题,请高手指教!
- c#有没有unescape ?我要改造些代码,找不到c#的替身...Regex.Unescape 貌似不好使.
- Web服务器应用程序中对并发操作有何解决方法?
- 实现多个头像闪动
- 大哥们,救救我!!button1_Click后button2_Click报错,找不到@"..\..\file.mdb",直接button2_Click,就可以,为什么??
- ToolStrip左边的手柄不能拖动,为什么?
- 关于comboBox1 comboBox2 datagrid1选择联动的问题?
- 太恐怖了~~VC软件包不可用或未注册!
- 关于死锁
- 为什么我写照网上写的设置文件夹权限的代码没有效果?
Infragistics
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;
}
}
}
我要的效果是node那列还是label显示,但是最后面有一个x的图点图删除,类似那个gridview的自定义控件一样
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); // 刷新重新定位按钮
}
}
}
(图)aaAa (按钮)
这样的一个效果,我图怎么加进去。而且文本部分的长度怎么设置啊
然后设置每个节点的ImageIndex
长度是动态的,可以设置按钮的起始距离