Solved

Is it possible to modify the Columns property of a DataGridView (DGV) on a derived UserControl if the DGV has been defined on the 'base' UserControl?

Posted on 2011-09-23
4
426 Views
Last Modified: 2013-11-27
I am trying to modify the columns of a DataGridView on a custom UserControl, call it UC_x, which derives from another custom UserControl, call it UC_base (i.e., UC_x : UC_base).  The DataGridView has been placed onto UC_base in the Designer and has its 'Modifiers' property set to 'Protected Internal'.

When I open the derived UserControl, UC_x, in the Designer I see the DataGridView but I do not have access to the Columns property of the DataGridView - it is grayed-out in the Properties window - and the arrow that normally appears at the upper-right corner of a DataGridView that allows me to edit the columns (add, remove, rename, etc.) does not appear either.  My goal was to create several UserControls - UC_x, UC_y, UC_z, etc. - that would all derive from UC_base and all of which would have different columns.  However that does not look possible.

While investigating this issue I placed a TextBox onto UC_base and set its 'Modifiers' property to 'Protected Internal'.  On UC_x I can modify the Text property of the TextBox.  Other properties, e.g., the name of the TextBox, are grayed-out.  This implies to me that all objects placed onto the base UserControl will have some properties that are accessible by a derived UserControl and some that are not.  If this model is correct, it appears that for a DataGridView all properties, including the Columns property, fall into the group of properties that are not accessible from a derived UserControl.

Is there any way for the Columns property of a DataGridView on a derived UserControl to be modified - columns removed, columns added, columns renamed, etc.?  If not, what are some suggested alternatives?

I have considered simply adding columns programmatically in the derived UserControls.  Any thoughts on this?

I am writing a C# application using Microsoft Visual Studio 2010.
0
Comment
Question by:e_livesay
  • 2
  • 2
4 Comments
 
LVL 96

Expert Comment

by:Bob Learned
ID: 36599444
If you are looking to access Protected Internal from the designer, then you will hit a fairly solid brick wall.  You can provide your own custom GridColumns property, and hide the Columns property.
0
 

Accepted Solution

by:
e_livesay earned 0 total points
ID: 36713586
I appreciate the reply.  That was quite a solid brick wall.

I have gotten past this problem by adding columns programmatically in the derived UserControls.  That is, the base UserControl has a DataGridView on it which does not have any Columns in it and each of the derived UserControls have a routine in them that adds Columns to the DataGridView programmatically.

I'm unsure what I'm supposed to do with the points associated with this question.  As I said, I appreciate your feedback - especially since no one else commented at all - but I ended up solving this problem by using a method that I suggested in the question itself and not by adding a custom GridColumns property.  What is the protocol for this?

Thanks.
0
 
LVL 96

Expert Comment

by:Bob Learned
ID: 36717107
The protocol is "it depends".  If you think that I helped, by confirming your suspicions, then I would accept my answer.  If it was a lame response that didn't help you very much, then I would suggest either accepting your answer as the solution or requesting attention to this question, and asking for a delete.

No skin off my nose either way--I am just here to help, where I can...
0
 

Author Closing Comment

by:e_livesay
ID: 36923048
This was solved by adding columns to the DataGridView programmatically which was suggested in the question itself.

TheLearnedOne - thanks for your comment and the suggestion regarding what to do regarding the points associated with this question.
0

Featured Post

DevOps Toolchain Recommendations

Read this Gartner Research Note and discover how your IT organization can automate and optimize DevOps processes using a toolchain architecture.

Question has a verified solution.

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

Suggested Solutions

Title # Comments Views Activity
Visual Studio TFS - how do I check in my code? 2 36
Windows ICD FFU Issue 4 35
Call windows 10 virtual keyboard from windows forms app 2 32
SQL Help 27 40
For a while now I'v been searching for a circular progress control, much like the one you get when first starting your Silverlight application. I found a couple that were written in WPF and there were a few written in Silverlight, but all appeared o…
Many of us here at EE write code. Many of us write exceptional code; just as many of us write exception-prone code. As we all should know, exceptions are a mechanism for handling errors which are typically out of our control. From database errors, t…
This is Part 3 in a 3-part series on Experts Exchange to discuss error handling in VBA code written for Excel. Part 1 of this series discussed basic error handling code using VBA. http://www.experts-exchange.com/videos/1478/Excel-Error-Handlin…
Microsoft Active Directory, the widely used IT infrastructure, is known for its high risk of credential theft. The best way to test your Active Directory’s vulnerabilities to pass-the-ticket, pass-the-hash, privilege escalation, and malware attacks …

813 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

14 Experts available now in Live!

Get 1:1 Help Now