Login | Register   
RSS Feed
Download our iPhone app
Browse DevX
Sign up for e-mail newsletters from DevX

By submitting your information, you agree that devx.com may send you DevX offers via email, phone and text message, as well as email offers about other products and services that DevX believes may be of interest to you. DevX will process your information in accordance with the Quinstreet Privacy Policy.

Tip of the Day
Language: C#
Expertise: Intermediate
Nov 18, 2004



Application Security Testing: An Integral Part of DevOps

How to Determine the Item Selected from a Property Grid Drop-down List

In Visual Studio, when you select an item on a form you're building, the Property Grid appears and lets you set various properties (e.g. background color, width, height, text color, etc.) from a two-column table. The left column contains the property name, and the right column contains either a text field where you enter a value, or a drop-down list from which you can select a value. You can use the Property Grid control in your own applications, but it's not quite so clear how you can determine which value a user selects from a drop-down list that contains multiple values. This example provides the code to know which item a user selects from the drop-down list.

First, inherit the class from UITypeEditor:

public class SelEditor : 
   // this is a container for strings, which can be 
   // picked-out
   ListBox Box1 = new ListBox();
   IWindowsFormsEditorService edSvc;
   // this is a string array for drop-down list
   public static string[] strList;

   public SelEditor()
      // add event handler for drop-down box when item 
      // will be selected
      Box1.Click+=new EventHandler(Box1_Click);

   public override 
      GetEditStyle (System.ComponentModel.
         ITypeDescriptorContext context)
         return UITypeEditorEditStyle.DropDown;

   // Displays the UI for value selection.
   public override object EditValue
      context, System.IServiceProvider provider, 
      object value)
      // Uses the IWindowsFormsEditorService to 
      // display a drop-down UI in the Properties 
      // window.
      edSvc =               
      if( edSvc != null )
         edSvc.DropDownControl( Box1 );
         return Box1.SelectedItem;

      return value;

   private void Box1_Click(object sender, EventArgs e)

Second, describe a property in the class, to be displayed in the property grid:

public class Class1
   // These are string arrays for different drop-down 
   // lists.
   string[] Str1= {"AAA","BBB","CCC","DDDD"};
   string[] Str2= {"WW","EEE"};

   string s1,s2;

   public Class1()
      // TODO: Add constructor logic here

   public string STR_1
      get{SelEditor.strList=Str1; return s1;}
   public string STR_2
      get{SelEditor.strList=Str2; return s2;}
Vladimir Shaposhnik
Comment and Contribute






(Maximum characters: 1200). You have 1200 characters left.



Thanks for your registration, follow us on our social networks to keep up-to-date