C# - Refresh Property Grid, At Design-time, When A Readonly Collection Changes In .Net, Winforms?
Mar 3, 2010
I have a class that has a readonly collection property - Its a list of extender providers that have been applied to the control.I've implemented a simple property descriptor for the collection so that the property can be expanded in the property grid to examine each entry.
When I select an extender provider and set it to false, I remove it from the collection. The GetProperties method of the type converter is requeried and the property grid refreshes.However, when I set an extender provider to true, and thus add it to the collection, GetProperties is not requeried.
Somehow, the property grid is making a distinction between adding to and removing from the collection. Or alternativly, its refreshing when an extender provider is added, but not when one is removed.
[Code]...
View 1 Replies
ADVERTISEMENT
Feb 19, 2010
I have a custom collection, lets says COL, that derives from ObjectModel.Collection. I have my own collection editor that works fine when a property, of type COL, is Read and Write enabled. However, if I change the property to ReadOnly, the open editor button stops showing in the property grid. As a test, I override my custom editor with the CollectionEditor, and that worked fine. So, my question is, what check is the property grid making, that CollectionEditor passes but my collection editor fails?
View 2 Replies
Mar 11, 2010
(I've answered the question below with a hack. I'm fairly confident in it unless MS change the way that codedom serializers the designer code.)ETA2:I've worked out what is going on. I wondered why sometimes it would work and not others. It boils down to the name that I give to the internal property and the collection.If I rename the property 'Annoyance' to 'WTF', it will serialize correctly because 'WTF' is, alphabetically, after the name of the collection - 'InternalAnger'.It looks like the serializer is creating instances of objects alphabetically and needs my internal property to be created by the time it comes to create the collection.I can fix this with a rename, but that's a hack and I fear that writing a custom serializer is a big job - which I've never done before.ETA: Jesus, I'm sick of this. This problem was specifically about persisting an interface collection but now on further testing it doesn't work for a normal collection. Here's some even simpler code:
Public Class Anger
End Class
Public Class MyButton
[code].....
View 4 Replies
Mar 8, 2012
I am creating a User Control where I have a property called Items. Items is of type LibraryPanelBarItem Collection (custom class) which contains a collection of LibraryPanelBarItem objects. I would like to be able to add these at design time by using the Collection editor that VS uses for adding things such as treenodes/listviewitems. Ideally I would also be able to declaratively add them to the html syntax. I can get the Items property to show up but I get no intellisense to add the items between the opening and closing tags. [Code]
View 1 Replies
Oct 4, 2010
I have a form that is used at design-time to configure various properties. I've tried two ways to do a form-level catch all exception:
(1) I add a handler to Application.ThreadException in the constructor.
(2) I wrap the Show method, of the form, in a Try/Catch block
Both of these work at run-time when I test by adding a property grid to a form and set my component as the SelectedObject. However, at design-time the form simply closes with no message whatsoever; neither my message nor any message explaining that there is an unhandled exception. This is not about debugging at design-time. It's about how to present the user with a friendly message when my type editor encounters an unhandled exception.
View 1 Replies
Apr 30, 2011
This is a related to my last post, but not enough to make sense as a tag on question.I have a collection(of myClass) that is exposed as a public property in a user control.When I add an item to the collection in code I would make the call collection.add(new myClass) and of course the constructor for myClass is called.When I add items to the collection via the design time menu the constructor for myClass is not called.... of it it is called, I can't see any evidence of it.
View 3 Replies
Jun 11, 2010
I've created a custom clipboard because it's not possible to make my whole class map serializable - which is a requirement for the windows clipboard.However, I need to distinguish between users who are using my clipboard through a unique id. Basically, I want to be able identify a person who is sat at one PC with one or more copies of visual studio (or similar) open.
View 1 Replies
Jun 2, 2011
I'm trying to make a collection class for buttons to address them as a whole, only I want to design the buttons at design time, and not add/set their properties programatically at runtime. Each button has its own image, so it doesn't seem right to add a bunch of lines of code which assign the properties when they're always going to be the same thing.Is it possible to create the controls at design time and then add them to an array at runtime? I did this, iterating through the buttons on the form and adding each of them to the class below.The problem is that once they're added they seem to be a different instance because changing their positions has no effect on the design-buttons on the form. Essentially i wanted the collection to be a reference to the items belonging to the form.Is that possible or should I be doing this a different way?[code]
View 2 Replies
Jun 8, 2009
I have a UserControl class in a Windows Application project. One of the properties of it is a collection of another class that I have defined. I can't seem to find a good example of how to get the standard collection editor working for it at design time.I got it working using some example code I found to a degree, but the data in my collection doesn't get saved. When I exit the form and open it back up in design time the data isn't there any more.Here is my class:
Public Class Gauge
Inherits Control
Private WithEvents _Captions As New CaptionCollection
[code].....
View 1 Replies
Oct 14, 2010
I am having a problem with the Visual Basic property collection editor .
I have created a Custom Type
Public Class Field
Private Item As Integer
Private Name As String = "FieldName"
[ode]....
View 1 Replies
Feb 15, 2010
I had a strange problem editing a class in the property grid whereby the property grid would refresh incorrectly.I managed to reduce the problem down to a class with just two properties. I've included the code at the end to ease explanation.It basically boils down to a class with two properties. The first of which is expandable (a font)The class itself is expandable and also implements the CreateInstance method in the type converter.To see the problem, expand the font, edit, say 'Bold', and tab away. Two problems happen:
(1) The second property jumps up and ends up in the expanded font property.
(2) The '-' sign of the expanded font changes to a '+'.
The problem goes away by attaching ResfreshProperties(RefreshProperties.All) to the class. That's great, but I'd like to understand how it fixed the problem. I've had a look in reflector and can't find any examples of RefreshProperties being attached at the class level.
[code]...
View 1 Replies
Oct 28, 2009
I am trying to extend the functionality of the ToolStripPanel control (which is a panel hosting ToolStrips that can be moved during design-time, as I'm sure you know).One thing I wanted to add was a 'ToolStrips' property, which would be a collection of ToolStrips the user can edit via the collection editor in the designer. So instead of manually placing ToolStrips on the ToolStripPanel via the toolbox, the user can just use the property to add/remove (or even edit) them. This is of course similar to how you add/remove/edit TabPages in a TabControl.So, I came up with this code, which I have used successfully in the past for other controls:
Public Class cToolStripPanel
Inherits ToolStripPanel
Private _ToolStrips As New ToolStripCollection(Me)[CODE]....
The cToolStripPanel control inherits the ToolStripPanel control and adds the ToolStrips property, which is of type ToolStripCollection. That class, in turn, inherits the Collection(Of ToolStrip). In the InsertItem method, I add the 'item' ToolStrip to the cToolStripPanel. Of course I also need to override the RemoveItem / ClearItems methods but that's for another time.I am 100% sure that this code should works, at least for other controls. If you replace ToolStrip with Button (for example), I can add buttons via the property during design-time just fine, exactly the way I want it.But it seems that ToolStrips are special. When I try to Add a toolstrip (via the collection editor Add button), a null reference exception occurs. I've been trying to debug this all day and I've finally come up with a possible candidate for the problem... (I've actually used design-time debugging for the first time ever, which was pretty cool, and which showed me that the InsertItem method is not run!)
I think the problem is that the collection editor cannot create a new instance of the ToolStrip class. I can remember when trying to inherit from the ToolStrip, I was forced to add a constructor, because the ToolStrip "has more than one constructor that can be called with no arguments".Perhaps this is causing my problem? Do I (and if yes, how?) have to somehow control the creation of a new instance of the ToolStrip? Or am I completely off track and that is not what is causing the problem? I'm sure that it's a problem with the ToolStrip class, since I can use the exact same method with other controls just fine. It's only when I change the type to ToolStrip that it starts getting angry at me....
View 1 Replies
Mar 17, 2009
i have created my own custom propertythe property is of type collection ,it displays a form which allow the user to add a list of images and strings,it stores the data in a collection ,my problem is , i have noticed that after adding items to the collection at design time , there is no code generated in the .Designer file of the form and there for when i close the for / save it and reload it , all the items that i added to my custom property are gone.my question , what did i miss here ? how do i make my custom property generate code at the .designer file for the items i have added to my property?
View 1 Replies
Jun 12, 2012
I am using a PropertyGrid control to edit my class properties and I am trying to set certain properties read-only depending on other property settings.This is the code of my class:
Imports System.ComponentModel
Imports System.Reflection
Public Class PropertyClass[code].....
This is the code I am using to edit the values:
Dim c As New PropertyClass
PropertyGrid1.SelectedObject = c
The problem is that when I set SomeProperty to True, nothing happens and when I then set it to False again it sets all properties Read-Only.
View 1 Replies
Oct 22, 2010
I have a form where I have created a custom property, DataEntryRole, and set its Browsable attribute to True, as shown:
<Browsable(True)> _
Public Property DataEntryRole() As UserRole.PossibleRoles
Get
Return mDataEntryRole
End Get
[Code]...
When I view the designer for my form, DataEntryRole doesn't appear in the property box. I assume that it should appear if I were to create another form that inherited from this base form, but that's not what I want. I want this property to show up in my current form.
View 2 Replies
Oct 21, 2009
I have a class where it's problematic to relay on the properties being serialized in alphabetical order at design time.In other words, property Z must be serialized before property A.The problem arises because property property Z clears property A whenever it changes - which happens in InitializeComponent.I work around this problem by setting a FirstTime flag, but that seems messy.
View 2 Replies
Mar 18, 2011
A component I'm making has a public property that represents a percentage. How I can give it a % symbol in the Properties Window at design time in Visual Studio? I mean, like the Opacity property of a Windows Form.
View 2 Replies
Mar 26, 2008
In my never ending search for more knowledge, I have come across Partial Classes. I was wondering if some of the kind people who actually understand the uses could explain some of them to me. Now I know that when we create a form that we actually create a partial class which the generator rewrites when we add a control or change a property at design-time, and this allows us not to have to worry about setting up the controls ourselves.
[Code]...
View 2 Replies
May 20, 2010
I have a usercontrol which overrides the property Text. But this property is not shown at design time.If I rename it to caption or value it is shown in properties at design time but Text is not shown.
public Class SomeControl
Inherits System.Windows.Forms.UserControl
Public Overrides Property Text() As String
[code].....
View 2 Replies
Apr 27, 2011
I'm making a control and I am trying to finalize my design time properties grid. I have several List(of Class) items as public properties and when I click on the design time menu (while testing the control) there is the word "Collection" and a button with an ellipsis (...) that brings up a neat pop up with the buttons Add/remove and all of the public properties of the collection's class on the right hand side. Basically for a non-collection instance of a class (with public properties) I'd like a similar button to show up. I know I could put all of the properties in the main control class and group them, but I like the pop up box feature. Anyway to duplicate this? (think font grid item etc.)
View 3 Replies
Jun 10, 2011
Is there a way for implementers of an interface where a ReadOnly property is defined to make it a complete Read/Write Property ?
Imagine I define an interface to provide a ReadOnly Property (i.e., just a getter for a given value) :
Interface SomeInterface
'the interface only say that implementers must provide a value for reading
ReadOnly Property PublicProperty As String
End Interface
This means implementers must commit to providing a value. But I would like a given implementer to also allow setting that value. In my head, this would mean providing the Property's setter as part of the implementation, doing something like this :
Public Property PublicProperty As String Implements SomeInterface.PublicProperty
Get
Return _myProperty
[code]....
View 5 Replies
Mar 23, 2011
Conceptually it seems like a derived class should be able to override a readonly property with a read write property. Why isn't this possible?
[code]...
View 4 Replies
Feb 22, 2011
When it comes to creating trees or collections, sometimes I want child elements to have a reference to the parent. Obviously it is important that the parent and child references to each other remain in sync. It seems natural to have code in the parent "addchild" and "removechild" methods that updates the child's parent reference.t also, the reference to the parent should probably be readonly, so it can only be changed at the appropriate time.Two examples in .Net that I've seen are the TreeNode and datagridview controls
View 11 Replies
Jul 28, 2010
Is there a efficient way to provide an Enumarable<SomeType> or a collection that implements INotifyCollectionChanged but that can only be changed from the inside of the providing class.
The following example shows what I mean, but has the disadvantage that the caller can cast the IEnumerable<SomeType> back and then manipulate my internal collection, what I really would dislike:
[Code]...
View 2 Replies
Jan 26, 2012
I Like .NET automatic properties, in C# it so easy to declare readonly property by declaring its set section as private like this:
public String Name{ get; private set; }
But when I tried that in VB.NET I was shocked that it is not supported as mentioned here and I have to write it as follows:
Private _Name as String
Public ReadOnly Property Name as String
Get
[Code].....
What the difference between these declarations in VB.NET, which one is preferred and Why?
Which one will affect compile time, runtime or performance at all?
View 3 Replies
Oct 20, 2009
I have a user control and I'd like to give it a custom property named ReadOnly. I get "Keyword is not valid as an identifier", as it thinks I'm writing a ReadOnly Property named something.
so really I can call mine 'Read_Only', but I'm just curious if there's an easy way to get the other name in there, since then my control will be similar to the visual controls that have ReadOnly in the designer.
View 5 Replies
May 31, 2009
As I understood , The property grid is given an object which it can manipulate by extracting its Properties using reflections.
My problem is that I have a set of Parameters that is determined during run-time , thus I can't staticly compose a class with properties to represent this set.
I have two idea in mind to solve this problem but both are complex and will probably consume lot of time , infact i will say they are not practical under my time constraints. One is to use Reflection Emit in order to define a class dynamically and the other is to dynamiclly build a C# source file and then compile it using CodeDom.
Can Property grid behave in a different manner( other then extracting the Properties of an object using reflections ) that can suite my problem?
I want to say that the reason I went to the property grid from the begining was its ability to provide realy nice Data Retrieval UI for common types.For color you autometically get a palette , For dataTime you automatically have a nice calender. I would like to get those things automatically If possible.
View 1 Replies
Jan 31, 2011
is it possible (and how) to make a readonly automatic property in VB 2010?
Public Class Foo
Public Property Value As Integer
Public Sub New()
[code]....
problem is that users can write to the property.
View 2 Replies
Mar 9, 2012
It seems that VB.NET and C# readonly keyword have some differences... Say, a ReadOnly property in C# can be assigned in some conditions, but in VB.NET - never?
View 2 Replies
Nov 16, 2011
How would one invoke a readonly property?
ListView1.SelectedIndices.Count
View 2 Replies