Please see the picture in attachment.
Can I add "Add Node" button in every node?
Rather than, user choose >> right click >> click New >> key in.
Is possible?
Thank You.
Can I add "Add Node" button in every node?
Rather than, user choose >> right click >> click New >> key in.
Is possible?
Thank You.
5 Answers, 1 is accepted
0
Richard Slade
Top achievements
Rank 2
answered on 24 Apr 2012, 04:49 PM
Hello Stanley,
This could probably be improved, and I'm not sure if nodeformatting is the most efficient way to go, but this should give you a head start in trying to perform this functionality.
Hope that helps
Richard
This could probably be improved, and I'm not sure if nodeformatting is the most efficient way to go, but this should give you a head start in trying to perform this functionality.
int _i = 1;public Form1(){ InitializeComponent(); this.radTreeView1.NodeFormatting += new TreeNodeFormattingEventHandler(radTreeView1_NodeFormatting); this.radTreeView1.Nodes.Add(new RadTreeNode("My First Node"));}void radTreeView1_NodeFormatting(object sender, TreeNodeFormattingEventArgs e){ if (e.NodeElement.Children.Count == 4) { RadButton button = new RadButton(); button.Size = new Size(40, 22); button.Text = "Add Node"; RadHostItem host = new RadHostItem(button); e.NodeElement.Children.Add(host); button.Tag = e.Node.Name; button.Click += new EventHandler(button_Click); }}void button_Click(object sender, EventArgs e){ RadTreeNode node = this.radTreeView1.GetNodeByName(((RadButton)sender).Tag.ToString()); node.Nodes.Add(new RadTreeNode("A new node " + _i.ToString())); node.Expand(); _i++;}Hope that helps
Richard
0
Richard Slade
Top achievements
Rank 2
answered on 25 Apr 2012, 12:51 PM
Hi again,
I'm working on something else for you that uses a custom node element. Will have something to you as soon as possible
Richard
I'm working on something else for you that uses a custom node element. Will have something to you as soon as possible
Richard
0
Accepted
Richard Slade
Top achievements
Rank 2
answered on 25 Apr 2012, 02:00 PM
Hi,
Ok - this is better and is much more effective. Please remember to mark as answer. Let me know if you need further help.
Form
HostNodeElement
Richard
Ok - this is better and is much more effective. Please remember to mark as answer. Let me know if you need further help.
Form
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using Telerik.WinControls;using Telerik.WinControls.UI;namespace RadControlsWinFormsApp1{ public partial class Form1 : Form { public Form1() { InitializeComponent(); this.radTreeView1.CreateNodeElement += new CreateTreeNodeElementEventHandler(radTreeView1_CreateNodeElement); this.radTreeView1.ShowExpandCollapse = true; this.radTreeView1.LineStyle = TreeLineStyle.Solid; this.radTreeView1.Nodes.Add(new RadTreeNode("My First Node")); this.radTreeView1.Nodes.Add(new RadTreeNode("My Second Node")); this.radTreeView1.Nodes.Add(new RadTreeNode("My Third Node")); this.radTreeView1.AllowEdit = true; } private void radTreeView1_CreateNodeElement(object sender, CreateTreeNodeElementEventArgs e) { e.NodeElement = new HostNodeElement();; } }}HostNodeElement
using System;using System.Collections.Generic;using System.Linq;using System.Text;using Telerik.WinControls.UI;using Telerik.WinControls;using System.Drawing;namespace RadControlsWinFormsApp1{ public class HostNodeElement : TreeNodeElement { protected override void InitializeFields() { base.InitializeFields(); } protected override void CreateChildElements() { base.CreateChildElements(); RadButton button = new RadButton(); button.Size = new Size(65, 15); button.Text = "Add Node"; RadHostItem host = new RadHostItem(button); button.Click += new EventHandler(button_Click); host.StretchHorizontally = false; host.StretchVertically = true; this.Children.Add(host); } void button_Click(object sender, EventArgs e) { RadTreeNode node = new RadTreeNode("New Node"); this.Data.Nodes.Add(node); if (this.TreeViewElement.AllowEdit) { node.BeginEdit(); } this.Data.Expand(); } protected override Type ThemeEffectiveType { get { return typeof(TreeNodeElement); } } }}Richard
0
Stanley
Top achievements
Rank 1
answered on 26 Apr 2012, 02:14 AM
Hi Richard,
Thanks for your help.
That is what I need. ^^
Could you help me another topic? haha
See last reply.
http://www.telerik.com/community/forums/winforms/combobox-and-listbox/treeview-in-combobox.aspx#2081450
Thanks for your help.
That is what I need. ^^
Could you help me another topic? haha
See last reply.
http://www.telerik.com/community/forums/winforms/combobox-and-listbox/treeview-in-combobox.aspx#2081450
0
Hello guys,
I just want to mention that the custom node solution is the better approach for this scenario. Using it, instead of using RadButton and RadHostItem, you can use RadButtonElement.
I hope that you find this information useful.
Greetings,
Stefan
the Telerik team
I just want to mention that the custom node solution is the better approach for this scenario. Using it, instead of using RadButton and RadHostItem, you can use RadButtonElement.
I hope that you find this information useful.
Greetings,
Stefan
the Telerik team
RadControls for WinForms Q1'12 release is now live! Check out what's new or download a free trial >>
