我已经实现了两个自定义UITypeEditor,一个使用模式编辑样式,另一个使用下拉菜单。它们用于编辑从标准控件派生的类的实例。在这两种情况下,当用户完成编辑时,结果都将用于填充所选控件的属性,而不是正在编辑的属性。例如,当我编辑MyLabel类的新属性时,Text属性也会得到更新。
我考虑过向MyLabel添加一个新属性,该属性不需要可见的编辑器,但是在更改Text属性时仍会更新它。我以为可以使用UITypeEditorEditStyle.None,编辑器将被静默调用并更新Text属性。但是,永远不会调用该编辑器。
我认为我的想法太花哨了,但我仍然很好奇。什么时候要使用“无”编辑样式,以及如何使用它?
我已经删除了编辑器,以便它只显示一条消息。在这里:
public class LocalizedLabelSuffixEditor : UITypeEditor
{
public override UITypeEditorEditStyle GetEditStyle(System.ComponentModel.ITypeDescriptorContext context)
{
return UITypeEditorEditStyle.None;
}
public override object EditValue(System.ComponentModel.ITypeDescriptorContext context, IServiceProvider provider, object value)
{
MessageBox.Show("Editing a suffix.");
return value;
}
}
这是应该使用的属性:
// For adding colons or other punctuation marks rather than requiring separate translations for "Charge" and "Charge:".
[Editor(typeof(LocalizedLabelSuffixEditor), typeof(UITypeEditor))]
public string Suffix { get; set; }
谢谢。