How Do I Avoid Merged Properties in the Property Grid?

Under normal circumstances, when you select multiple controls on a Web page, the property grid for the designer, like Visual Studio .NET or the Web Matrix, shows an intersection of the properties of the controls you selected. That is, it merges the properties that exist in all the controls and shows them in the grid as one property. This is often very useful as it allows you to quickly set the properties of a lot of controls to the same values, like the font for example.

However, this is probably not useful for all the properties of your control. Properties like the ID, the Name or any other property that needs to be unique throughout your control collection, should not participate in this "merge of properties ". Preventing your property from being merged is easy though; just apply the MergablePropertyAttribute:

  /// <summary>
  /// The UserName defines the Name of the user 
  /// and needs to be unique throughout the page.
  /// </summary>
  [
    Browsable(false),
    MergableProperty(false)
  ]
  public string UserName
  {
    get
    {
      return userName;
    }
  }
Now when you select multiple controls that have a UserName, that property will not show up in the property grid.

Where to Next?

Wonder where to go next? You can post a comment on this article.

Doc ID 309
Full URL https://imar.spaanjaars.com/309/how-do-i-avoid-merged-properties-in-the-property-grid
Short cut https://imar.spaanjaars.com/309/
Written by Imar Spaanjaars
Date Posted 06/29/2004 13:17
Date Last Reviewed 06/06/2006 22:32
Listened to when writing Rocket Queen by Guns N' Roses (Track 12 from the album: Appetite For Destruction)

Comments

Talk Back! Comment on Imar.Spaanjaars.Com

I am interested in what you have to say about this article. Feel free to post any comments, remarks or questions you may have about this article. The Talk Back feature is not meant for technical questions that are not directly related to this article. So, a post like "Hey, can you tell me how I can upload files to a MySQL database in PHP?" is likely to be removed. Also spam and unrealistic job offers will be deleted immediately.

When you post a comment, you have to provide your name and the comment. Your e-mail address is optional and you only need to provide it if you want me to contact you. It will not be displayed along with your comment. I got sick and tired of the comment spam I was receiving, so I have protected this page with a simple calculation exercise. This means that if you want to leave a comment, you'll need to complete the calculation before you hit the Post Comment button.

If you want to object to a comment made by another visitor, be sure to contact me and I'll look into it ASAP. Don't forget to mention the page link, or the Doc ID of the document.

(Plain text only; no HTML or code that looks like HTML or XML. In other words, don't use < and >. Also no links allowed.