Solved

How to derive TreeNodeCollection class

Posted on 2002-07-04
16
1,612 Views
Last Modified: 2010-08-05
Hi,
I am trying to extend the TreeView class in C#. I am not able to derive the TreeNodeCollection class. It seems that its constructor is private.
Is there any way to inherit this class?
0
Comment
Question by:tandrei
  • 8
  • 3
  • 2
  • +2
16 Comments
 
LVL 4

Expert Comment

by:CoolAss
ID: 7130839
Well, TreeNodeCollection is not sealed... but you're correct, it doesn't have any constructor specified.

You don't need a constructor, however, to derive your new class.
0
 
LVL 1

Author Comment

by:tandrei
ID: 7131153
CoolAss,
Please tell me how, cause I get a compile error when I try to derive it because I can't override the constructor.
0
 
LVL 4

Expert Comment

by:CoolAss
ID: 7131280
Paste the code and the error you're getting.
0
 
LVL 1

Author Comment

by:tandrei
ID: 7131807
public class BLTreeNodeCollection: System.Windows.Forms.TreeNodeCollection
{
  public BLTreeNodeCollection()
  {
  }
//...
}
0
 
LVL 22

Expert Comment

by:CJ_S
ID: 7131891
Indeed no need to override

public class BLTreeNodeCollection: System.Windows.Forms.TreeNodeCollection
{
 public BLTreeNodeCollection() : base()
 {
    // in here do all YOUR code.
 }
//...
}
0
 
LVL 1

Author Comment

by:tandrei
ID: 7131894
public class BLTreeNodeCollection: System.Windows.Forms.TreeNodeCollection
{
  public BLTreeNodeCollection()
  {
  }
//...
}
0
 
LVL 1

Author Comment

by:tandrei
ID: 7131930
CJ_S,
I derived the class as you sugested, but I get the same error. I put no code in the constructor.


C:\Documents and Settings\Administrator\My Documents\Visual Studio Projects\BLTree\Class1.cs(10): No overload for method 'TreeNodeCollection' takes '0' arguments
0
 
LVL 1

Author Comment

by:tandrei
ID: 7131960
CJ_S,
I derived the class as you sugested, but I get the same error. I put no code in the constructor.


C:\Documents and Settings\Administrator\My Documents\Visual Studio Projects\BLTree\Class1.cs(10): No overload for method 'TreeNodeCollection' takes '0' arguments
0
Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

 
LVL 1

Author Comment

by:tandrei
ID: 7132017
CJ_S,
I derived the class as you sugested, but I get the same error. I put no code in the constructor.


C:\Documents and Settings\Administrator\My Documents\Visual Studio Projects\BLTree\Class1.cs(10): No overload for method 'TreeNodeCollection' takes '0' arguments
0
 
LVL 1

Expert Comment

by:GuryTraub
ID: 7135085
Why not inherit the TreeNode class itself, and use the old known TreeNodeCollection, but with yourTreeNode classes instead of the regular.

I did this in my application recently, and it works fine.
In fact in the same manner you can inherit ListViewItem, etc'..

That's the best way to do it I think..
Gury
0
 
LVL 22

Expert Comment

by:CJ_S
ID: 7135193
Or have a public TreeNodeCollection object and you add the functions to the class itself.

I haven't been able to derive from it either.

CJ
0
 
LVL 1

Author Comment

by:tandrei
ID: 7136975
GuryTraub,
I wanted to do this , but how can I add my TreeNode to the system TreeNodeCollection?If my TreeNode extends the system TreeNode and I cast it to the system TreeNode in order to add it to the system TreeNodeCollection class I should lose all my extends!
0
 
LVL 4

Expert Comment

by:DarthPedro
ID: 7149759
You wouldn't lose all of your extensions.  When you get your TreeNode out of the collection, you just need to cast it to your class, and then you can access the new methods/properties that you've added.
0
 
LVL 1

Accepted Solution

by:
GuryTraub earned 70 total points
ID: 7152457
I dont understand what you are saying.
You are wrong, my friend
I did exactly this, in an application I wrote not long ago.
I derived from TreeNode.

and then you can do something like

TreeNodeCollection col;

col.Add(YourDerivedTreeNode node);

and it will work, and you won't lose your extensions..

I probably dont fully understand the problem, so please elaborate..
Gury
0
 
LVL 4

Expert Comment

by:CoolAss
ID: 7153167
GuryTraub,

Please do not propose an answer like that. Use the comment post, then, if the person asking the question feels your comment has helped, he or she will accept it as the answer.
0
 
LVL 1

Author Comment

by:tandrei
ID: 7153531
Thanx GuriTraub, I already did that and it really works OK.
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Article by: Ivo
C# And Nullable Types Since 2.0 C# has Nullable(T) Generic Structure. The idea behind is to allow value type objects to have null values just like reference types have. This concerns scenarios where not all data sources have values (like a databa…
Introduction This article series is supposed to shed some light on the use of IDisposable and objects that inherit from it. In essence, a more apt title for this article would be: using (IDisposable) {}. I’m just not sure how many people would ge…
This video demonstrates how to create an example email signature rule for a department in a company using CodeTwo Exchange Rules. The signature will be inserted beneath users' latest emails in conversations and will be displayed in users' Sent Items…
This is a video describing the growing solar energy use in Utah. This is a topic that greatly interests me and so I decided to produce a video about it.

911 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

19 Experts available now in Live!

Get 1:1 Help Now