IPropertyValueUIService Arabirim
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Özellik tarayıcısında görüntülenen bir bileşenin özellikleri için görüntüleri, Araç İpuçlarını ve olay işleyicilerini yönetmek için bir arabirim sağlar.
public interface class IPropertyValueUIService
public interface IPropertyValueUIService
type IPropertyValueUIService = interface
Public Interface IPropertyValueUIService
Örnekler
Aşağıdaki kod örneği, arabirimin bir örneğini IPropertyValueUIService alan ve hizmete bir ekleyen bir PropertyValueUIHandler bileşen oluşturur. İşleyici, veya VerticalMargin
adlı HorizontalMargin
bileşenin tüm özellikleri için bir PropertyValueUIItem nesnesi sağlar. PropertyValueUIItem Bu özellikler için özelliğin görüntüsüne tıklandığında bir ileti kutusu görüntüleyen bir görüntü, Araç İpucu ve olay işleyicisi sağlar. Görüntü ve Araç İpucu, kılavuz bileşenin bu özelliklerini gösterdiğinde görüntülenir PropertyGrid .
using System.Collections;
using System.Drawing;
using System.Drawing.Design;
using System.Windows.Forms;
namespace PropertyValueUIServiceExample
{
// This component obtains the IPropertyValueUIService and adds a
// PropertyValueUIHandler that provides PropertyValueUIItem objects,
// which provide an image, ToolTip, and invoke event handler to
// any properties named HorizontalMargin and VerticalMargin,
// such as the example integer properties on this component.
public class PropertyUIComponent : System.ComponentModel.Component
{
// Example property for which to provide a PropertyValueUIItem.
public int HorizontalMargin { get; set; }
// Example property for which to provide a PropertyValueUIItem.
public int VerticalMargin { get; set; }
// Field storing the value of the VerticalMargin property.
private int vMargin;
// Constructor.
public PropertyUIComponent(System.ComponentModel.IContainer container)
{
if (container != null)
container.Add(this);
HorizontalMargin = 0;
VerticalMargin = 0;
}
// Default component constructor that specifies no container.
public PropertyUIComponent() : this(null)
{ }
// PropertyValueUIHandler delegate that provides PropertyValueUIItem
// objects to any properties named HorizontalMargin or VerticalMargin.
private 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 = Image.FromFile("SampImag.jpg");
itemList.Add(new PropertyValueUIItem(img, new PropertyValueUIItemInvokeHandler(this.marginInvoke), "Test ToolTip"));
}
if (propDesc.DisplayName.Equals("VerticalMargin"))
{
Image img = Image.FromFile("SampImag.jpg");
img.RotateFlip(RotateFlipType.Rotate90FlipNone);
itemList.Add(new PropertyValueUIItem(img, new PropertyValueUIItemInvokeHandler(this.marginInvoke), "Test ToolTip"));
}
}
// Invoke handler associated with the PropertyValueUIItem objects
// provided by the marginPropertyValueUIHandler.
private void marginInvoke(System.ComponentModel.ITypeDescriptorContext context, System.ComponentModel.PropertyDescriptor propDesc, PropertyValueUIItem item)
{
MessageBox.Show("Test invoke message box");
}
// Component.Site override to add the marginPropertyValueUIHandler
// when the component is sited, and to remove it when the site is
// set to null.
public override System.ComponentModel.ISite Site
{
get
{
return base.Site;
}
set
{
if (value != null)
{
base.Site = value;
IPropertyValueUIService uiService = (IPropertyValueUIService)this.GetService(typeof(IPropertyValueUIService));
if (uiService != null)
uiService.AddPropertyValueUIHandler(new PropertyValueUIHandler(this.marginPropertyValueUIHandler));
}
else
{
IPropertyValueUIService uiService = (IPropertyValueUIService)this.GetService(typeof(IPropertyValueUIService));
if (uiService != null)
uiService.RemovePropertyValueUIHandler(new PropertyValueUIHandler(this.marginPropertyValueUIHandler));
base.Site = value;
}
}
}
}
}
Açıklamalar
Bir bileşen, bileşenin IPropertyValueUIService herhangi bir özelliği için nesneler sağlamak PropertyValueUIItem üzere arabirimini kullanabilir. Bir PropertyValueUIItem özellik ile ilişkili bir görüntü, bir ToolTip ve özellik ile ilişkili görüntü tıklandığında oluşturulan olay için bir olay işleyicisi sağlayabilir.
Arabirim, IPropertyValueUIService iç listeye temsilci ekleme, kaldırma ve iç listeden temsilci alma PropertyValueUIHandler yöntemleri sağlar. Bir bileşenin özellikleri bir özellik tarayıcısında görüntülendiğinde, listedeki her PropertyValueUIHandler bileşene bileşenin her özelliği için bir PropertyValueUIItem sağlama fırsatı verilir.
Özellik tarayıcısı bir nesnenin özelliklerini görüntüleyecek şekilde ayarlandığında, bileşenin GetPropertyUIValueItems her özelliği için bu arabirimin yöntemini çağırır ve özelliği temsil eden bir PropertyDescriptor geçirir. GetPropertyUIValueItems yöntemi, hizmete eklenen her PropertyValueUIHandler bir hizmeti çağırır. Her PropertyValueUIHandler biri, parametresinde valueUIItemList
geçirilen ile temsil edilen özelliğin kullanıcı arabirimi öğelerini sağlamak için parametresinde geçirilen parametreye PropertyDescriptorpropDesc
bir PropertyValueUIItemArrayList ekleyebilir.
özelliği PropertyValueUIItem , özellik adının yanında görüntülenecek bir görüntü, bir ToolTip dizesi ve özelliğiyle ilişkilendirilmiş bir görüntüye çift tıklandığında çağrılacak bir olay işleyicisi içerebilir.
Yöntemler
AddPropertyValueUIHandler(PropertyValueUIHandler) |
Belirtilen PropertyValueUIHandler öğesini bu hizmete ekler. |
GetPropertyUIValueItems(ITypeDescriptorContext, PropertyDescriptor) |
PropertyValueUIItem Belirtilen bağlam ve özellik tanımlayıcısı özellikleriyle eşleşen nesneleri alır. |
NotifyPropertyValueUIItemsChanged() |
Genel nesne listesinin PropertyValueUIItem değiştirildiğini uygulamaya bildirirIPropertyValueUIService. |
RemovePropertyValueUIHandler(PropertyValueUIHandler) |
Belirtilen PropertyValueUIHandler öğesini özellik değeri UI hizmetinden kaldırır. |
Ekinlikler
PropertyUIValueItemsChanged |
Nesne listesi PropertyValueUIItem değiştirildiğinde gerçekleşir. |