PropertyValueUIHandler Delegate

 

Represents the method that adds a delegate to an implementation of IPropertyValueUIService.

Namespace:   System.Drawing.Design
Assembly:  System.Drawing (in System.Drawing.dll)

public delegate void PropertyValueUIHandler(
	ITypeDescriptorContext^ context,
	PropertyDescriptor^ propDesc,
	ArrayList^ valueUIItemList
)

Parameters

context
Type: System.ComponentModel::ITypeDescriptorContext^

An ITypeDescriptorContext that can be used to obtain context information.

propDesc
Type: System.ComponentModel::PropertyDescriptor^

A PropertyDescriptor that represents the property being queried.

valueUIItemList
Type: System.Collections::ArrayList^

An ArrayList of PropertyValueUIItem objects containing the UI items associated with the property.

When this delegate is invoked, it can add a PropertyValueUIItem containing UI items for the specified property to the ArrayList passed as the valueUIItemList parameter.

This following code example demonstrates creating a PropertyValueUIHandler event handler method that provides PropertyValueUIItem objects for any properties named HorizontalMargin or VerticalMargin.

// PropertyValueUIHandler delegate that provides PropertyValueUIItem
// objects to any properties named horizontalMargin or verticalMargin.
void marginPropertyValueUIHandler( System::ComponentModel::ITypeDescriptorContext^ /*context*/, System::ComponentModel::PropertyDescriptor^ propDesc, ArrayList^ itemList )
{
   // A PropertyValueUIHandler added to the IPropertyValueUIService
   // is queried once for each property of a component and passed
   // a PropertyDescriptor that represents the characteristics of
   // the property when the Properties window is set to a new
   // component. A PropertyValueUIHandler can determine whether
   // to add a PropertyValueUIItem for the object to its ValueUIItem
   // list depending on the values of the PropertyDescriptor.
   if ( propDesc->DisplayName->Equals( "horizontalMargin" ) )
   {
      Image^ img = DeserializeFromBase64Text( imageBlob1 );
      itemList->Add( gcnew PropertyValueUIItem( img,gcnew PropertyValueUIItemInvokeHandler( this, &PropertyUIComponent::marginInvoke ),"Test ToolTip" ) );
   }

   if ( propDesc->DisplayName->Equals( "verticalMargin" ) )
   {
      Image^ img = DeserializeFromBase64Text( imageBlob1 );
      img->RotateFlip( RotateFlipType::Rotate90FlipNone );
      itemList->Add( gcnew PropertyValueUIItem( img,gcnew PropertyValueUIItemInvokeHandler( this, &PropertyUIComponent::marginInvoke ),"Test ToolTip" ) );
   }
}

.NET Framework
Available since 1.1
Return to top
Show: