Solved

How to derive TreeNodeCollection class

Posted on 2002-07-04
16
1,682 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
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 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
Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
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
 
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

[Live Webinar] The Cloud Skills Gap

As Cloud technologies come of age, business leaders grapple with the impact it has on their team's skills and the gap associated with the use of a cloud platform.

Join experts from 451 Research and Concerto Cloud Services on July 27th where we will examine fact and fiction.

Question has a verified solution.

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

Entity Framework is a powerful tool to help you interact with the DataBase but still doesn't help much when we have a Stored Procedure that returns more than one resultset. The solution takes some of out-of-the-box thinking; read on!
This article aims to explain the working of CircularLogArchiver. This tool was designed to solve the buildup of log file in cases where systems do not support circular logging or where circular logging is not enabled
There are cases when e.g. an IT administrator wants to have full access and view into selected mailboxes on Exchange server, directly from his own email account in Outlook or Outlook Web Access. This proves useful when for example administrator want…
Monitoring a network: why having a policy is the best policy? Michael Kulchisky, MCSE, MCSA, MCP, VTSP, VSP, CCSP outlines the enormous benefits of having a policy-based approach when monitoring medium and large networks. Software utilized in this v…

624 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