Thanks, works fine, I would like to extend my use of the Property grid
to include objects within objects that would also be viewable/updateable
within the one property grid.
Can you point me in the direction of tutorial type documentation for
property grid, the help doc explanations are difficult for me to grasp?
rgds,Steve
"Marc Gravell" <ma**********@gmail.comwrote in message
news:11*********************@79g2000cws.googlegrou ps.com...
Normally this would be done via the type-converter of the property-type
(string in this case), which you obviously can't change in this
scenario. You could encapsulate the string into a simple class, and set
the converter for that, otherwise just set the converter for the
property:
using System;
using System.ComponentModel;
using System.Windows.Forms;
public class MyTest
{
private int test1;
public int Test1
{
get { return test1; }
set { test1 = value; }
}
private string test2;
[TypeConverter(typeof(StringListConverter))]
public string Test2
{
get { return test2; }
set { test2 = value; }
}
}
public class StringListConverter : TypeConverter
{
public override bool
GetStandardValuesSupported(ITypeDescriptorContext context)
{
return true; // display drop
}
public override bool
GetStandardValuesExclusive(ITypeDescriptorContext context)
{
return true; // drop-down vs combo
}
public override StandardValuesCollection
GetStandardValues(ITypeDescriptorContext context)
{
// note you can also look at context etc to build list
return new StandardValuesCollection(new string[] { "abc",
"def", "ghi" });
}
}
class Program
{
static void Main()
{
using (Form f = new Form())
using(PropertyGrid pg = new PropertyGrid())
{
pg.Dock = DockStyle.Fill;
pg.SelectedObject = new MyTest();
f.Controls.Add(pg);
Application.Run(f);
}
}
}