Click here to Skip to main content
Licence 
First Posted 12 Jan 2004
Views 90,185
Bookmarked 33 times

Bending .NET PropertyGrid to your will with a Custom Type Editor

By | 12 Jan 2004 | Article
Example of using the propertybag class of Tony Allowatt in vb.net with a custom type editor

Sample Image - Propertygrid_Editor_demo.jpg

Introduction

I've had serious trouble doing these two things:

  • Using a propertygrid and having all of its properties (like the names of the properties, and description that is shown) dynamic, in VB.NET
  • Using Tony Allowat's classes (which solves the first problem) with a custom type editor

I finally managed to get things working ... and thought that others amongst you could be having the same problem as I ... So here it is, my working VB.NET version of Tony Allowatt's propertybag classes, implementing a custom type editor.

Background

I didn't write the code of the PropertyBag.vb file ... Tony Allowatt wrote these usefull classes for the propertygrid, but in C#. Read his article first! Bending the .NET PropertyGrid to Your Will

Using the code

I'm not going to explain much in here, as all the serious code has been explained by Tony Allowatt in his article. I only provide an example of how to use his classes with a custom editor.

Public Class MyOwnClass
 ' the class that will be shown in the propertygrid
 ' it has a property of typ MultiLineString
End Class 

Public Class MultiLineString
 ' this is the custom type we'll want to edit in the propertygrid
 ' it's just a class with 1 property, a string, but 
 ' we want a multiline editor for it

 ' ...
End Class

Public Class MultiLineStringEditor
 Inherits UITypeEditor
 ' ...
End Class

Public Class MultiLineStringConverter
 Inherits System.ComponentModel.TypeConverter
 ' ...
End Class

Public Class MultiLineStringEditorForm
 Inherits System.Windows.Forms.Form
 ' ...
End Class

Points of interest

Some interesting links:

History

  • 14-01-2004 - Initial Release

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here

About the Author

SoTTo

Web Developer

Belgium Belgium

Member



Sign Up to vote   Poor Excellent
Add a reason or comment to your vote: x
Votes of 3 or less require a comment

Comments and Discussions

 
You must Sign In to use this message board. (secure sign-in)
 
Search this forum  
 FAQ
    Noise  Layout  Per page   
  Refresh
GeneralEasier Way Pinmemberbcryner5:48 27 Oct '08  
GeneralProperties are readonly... Pinmemberjack zucker10:46 28 Apr '05  
GeneralRe: Properties are readonly... PinmemberSpooler6:06 16 Sep '05  
It's only a guess but it might not be the isReadOnly that is working wrong here. Perhaps the grid sees the custom type editor, but theres something wrong with it, so it can't actually call it, so it doesn't know how to handle that specific type without the defined type editor.
 
Hope it helps.
Generalit does not really work Pinmemberzwark21:53 2 May '04  
GeneralRe: it does not really work PinmemberSoTTo22:45 2 May '04  
GeneralRe: it does not really work Pinmemberzwark23:00 2 May '04  
GeneralCollections PinmemberTLWallace10:55 14 Apr '04  
GeneralRe: Collections PinmemberSoTTo12:02 14 Apr '04  
GeneralDatabase example, please Pinmemberhuuhaa0:42 23 Jan '04  
GeneralRe: Database example, please PinmemberSoTTo7:44 25 Jan '04  
GeneralFlat Toolbar Look PinmemberTom Spink6:29 20 Jan '04  
GeneralRe: Flat Toolbar Look PinsussAnonymous0:18 21 May '04  
GeneralRe: Flat Toolbar Look PinmemberTom Spink5:42 21 May '04  

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

Permalink | Advertise | Privacy | Mobile
Web04 | 2.5.120529.1 | Last Updated 13 Jan 2004
Article Copyright 2004 by SoTTo
Everything else Copyright © CodeProject, 1999-2012
Terms of Use
Layout: fixed | fluid