By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
446,213 Members | 1,193 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 446,213 IT Pros & Developers. It's quick & easy.

Treeview and ContextMenuStrip

P: n/a
Let's say I have a Treeview control on a form. Each leaf node in the
Treeview has a ContextMenuStrip, each with one ToolStripMenuItem, and
all ToolStripMenuItems Click event is handled by a comment event
handler.

How do I determine which Treeview Node signalled the menu event in the
common event handler?
Oct 17 '07 #1
Share this Question
Share on Google+
7 Replies


P: n/a
Joe,

When creating the ContextMenuStrip for the nodes in the treeview
(assuming you have a separate ContextMenuStrip for each node), I would
assign the Tag property to the node in the tree view. Then, in the event
handler, you can get the Tag property and know which node triggered the
menu.
--
- Nicholas Paldino [.NET/C# MVP]
- mv*@spam.guard.caspershouse.com

"Joe Cool" <jo*****@home.netwrote in message
news:31********************************@4ax.com...
Let's say I have a Treeview control on a form. Each leaf node in the
Treeview has a ContextMenuStrip, each with one ToolStripMenuItem, and
all ToolStripMenuItems Click event is handled by a comment event
handler.

How do I determine which Treeview Node signalled the menu event in the
common event handler?
Oct 18 '07 #2

P: n/a
Since you are already using a treeview maybe you can answer this
question for me. I am new to C# and am trying to populate a treeview
from a SQL 2005 table. Do you have s snippit of code that will do
that or know a URL where I can see how?

I would really appreciate the help.

Thanks
On Wed, 17 Oct 2007 23:37:35 GMT, Joe Cool <jo*****@home.netwrote:
>Let's say I have a Treeview control on a form. Each leaf node in the
Treeview has a ContextMenuStrip, each with one ToolStripMenuItem, and
all ToolStripMenuItems Click event is handled by a comment event
handler.

How do I determine which Treeview Node signalled the menu event in the
common event handler?
Oct 18 '07 #3

P: n/a
On Thu, 18 Oct 2007 00:42:26 GMT, xm******@yahoo.com wrote:
>Since you are already using a treeview maybe you can answer this
question for me. I am new to C# and am trying to populate a treeview
from a SQL 2005 table. Do you have s snippit of code that will do
that or know a URL where I can see how?
Do you know how to either a) read a SQL2005 table, or b) populate a
treeview?
>
I would really appreciate the help.

Thanks
On Wed, 17 Oct 2007 23:37:35 GMT, Joe Cool <jo*****@home.netwrote:
>>Let's say I have a Treeview control on a form. Each leaf node in the
Treeview has a ContextMenuStrip, each with one ToolStripMenuItem, and
all ToolStripMenuItems Click event is handled by a comment event
handler.

How do I determine which Treeview Node signalled the menu event in the
common event handler?
Oct 18 '07 #4

P: n/a
Joe Cool wrote:
Let's say I have a Treeview control on a form. Each leaf node in the
Treeview has a ContextMenuStrip, each with one ToolStripMenuItem, and
all ToolStripMenuItems Click event is handled by a comment event
handler.

How do I determine which Treeview Node signalled the menu event in the
common event handler?
The ContextMenuStrip will be passed as the "sender" argument to the
event handler, as in

Sub xyz_Click( sender as Object, e as EventArgs )

Dim cms as ContextMenuStrip _
= DirectCast( sender, ContextMenuStrip )

From that, you can get the control that caused the ContextMenuStrip to
be shown, which will either be the TreeView or the TreeNode (I can't
remember which), as in

either
Dim tn as TreeNode _
= cms.SourceControl
or
Dim tn as TreeNode _
= DirectCast(cms.SourceControl,TreeView).SelectedNod e

HTH,
Phill W.
Oct 18 '07 #5

P: n/a
I can connect to the DB, create the dataadapter, populate a data set.
And I know how to add nodes to a treeview. The problem is how to use
the dataset to populate a treeview.

I have not found a Windows Forms C# example that can handle an
unspecified level of node nesting and Parent = Child. See child rows
15.

I would really appreciate the help.

Thank you.

I have a SQL Server 2005 table containing this data shown below.
Child...Parent...Depth.....Hierarchy
1.........NULL.....0.........01
2..........1.......1..........01.02
5..........2.......2..........01.02.05
6..........2.......2..........01.02.06
3..........1.......1..........01.03
7..........3.......2..........01.03.07
11.........7.......3..........01.03.07.11
14.........11......4..........01.03.07.11.14
12.........7.......3..........01.03.07.12
13.........7.......3..........01.03.07.13
8..........3.......2..........01.03.08
9..........3.......2..........01.03.09
4..........1.......1..........01.04
10.........4.......2..........01.04.10
15.........NULL....0..........15
15.........15......1..........15.15
16.........15......1..........15.16
18.........16......2..........15.16.18
17.........15......1..........15.17

On Thu, 18 Oct 2007 00:59:59 GMT, Joe Cool <jo*****@home.netwrote:
>On Thu, 18 Oct 2007 00:42:26 GMT, xm******@yahoo.com wrote:
>>Since you are already using a treeview maybe you can answer this
question for me. I am new to C# and am trying to populate a treeview
from a SQL 2005 table. Do you have s snippit of code that will do
that or know a URL where I can see how?

Do you know how to either a) read a SQL2005 table, or b) populate a
treeview?
>>
I would really appreciate the help.

Thanks
On Wed, 17 Oct 2007 23:37:35 GMT, Joe Cool <jo*****@home.netwrote:
>>>Let's say I have a Treeview control on a form. Each leaf node in the
Treeview has a ContextMenuStrip, each with one ToolStripMenuItem, and
all ToolStripMenuItems Click event is handled by a comment event
handler.

How do I determine which Treeview Node signalled the menu event in the
common event handler?
Oct 22 '07 #6

P: n/a
I assume that the records you get back from the dataset have the child
records after their parent. If not, then the process becomes much
more complicated.

The brute force method is, for each record, loop through the treeview
nodes until you find the parent and add the new node.

If the Child field was unique, then you could use Child as the key for
each node. That way you could loop through the records in the
dataset, directly locate the parent using the Parent value as the key,
and add the new node. Yours are not unique, so unless you can modify
the data this technique will not work for you. I'm not sure exactly
what your data looks like, but maybe you can do this if you make the
key be a combination of Child and Depth if that combination is unique.
On Mon, 22 Oct 2007 14:24:54 GMT, xm******@yahoo.com wrote:
>I can connect to the DB, create the dataadapter, populate a data set.
And I know how to add nodes to a treeview. The problem is how to use
the dataset to populate a treeview.

I have not found a Windows Forms C# example that can handle an
unspecified level of node nesting and Parent = Child. See child rows
15.

I would really appreciate the help.

Thank you.

I have a SQL Server 2005 table containing this data shown below.
Child...Parent...Depth.....Hierarchy
1.........NULL.....0.........01
2..........1.......1..........01.02
5..........2.......2..........01.02.05
6..........2.......2..........01.02.06
3..........1.......1..........01.03
7..........3.......2..........01.03.07
11.........7.......3..........01.03.07.11
14.........11......4..........01.03.07.11.14
12.........7.......3..........01.03.07.12
13.........7.......3..........01.03.07.13
8..........3.......2..........01.03.08
9..........3.......2..........01.03.09
4..........1.......1..........01.04
10.........4.......2..........01.04.10
15.........NULL....0..........15
15.........15......1..........15.15
16.........15......1..........15.16
18.........16......2..........15.16.18
17.........15......1..........15.17

On Thu, 18 Oct 2007 00:59:59 GMT, Joe Cool <jo*****@home.netwrote:
>>On Thu, 18 Oct 2007 00:42:26 GMT, xm******@yahoo.com wrote:
>>>Since you are already using a treeview maybe you can answer this
question for me. I am new to C# and am trying to populate a treeview
from a SQL 2005 table. Do you have s snippit of code that will do
that or know a URL where I can see how?

Do you know how to either a) read a SQL2005 table, or b) populate a
treeview?
>>>
I would really appreciate the help.

Thanks
On Wed, 17 Oct 2007 23:37:35 GMT, Joe Cool <jo*****@home.netwrote:

Let's say I have a Treeview control on a form. Each leaf node in the
Treeview has a ContextMenuStrip, each with one ToolStripMenuItem, and
all ToolStripMenuItems Click event is handled by a comment event
handler.

How do I determine which Treeview Node signalled the menu event in the
common event handler?
Oct 22 '07 #7

P: n/a
can u send the sample code to create different contextmenu for different
levels in a treeview...
Oct 23 '07 #8

This discussion thread is closed

Replies have been disabled for this discussion.