使用 PropertyGrid,如何使单击列表参数时打开的集合编辑器变为无模式而不是模式?
问问题
113 次
1 回答
0
创建一个新类型的 CollectionEditor:
public class SmartCollectionEditor : CollectionEditor
{
覆盖“EditValue”表单以无模式而不是模式打开集合表单,并删除接受和取消按钮,因为更改将立即生效。
public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value)
{
CollectionForm collectionForm = base.CreateCollectionForm();
collectionForm.EditValue = value;
(collectionForm.AcceptButton as Button).Visible = false;
(collectionForm.CancelButton as Button).Visible = false;
collectionForm.Show();
return value;
}
用一个属性标记您想要使用它的类型,该属性将使 PropertyGrid 打开它。
TypeDescriptor.AddAttributes(typeof(List<MyType>), new EditorAttribute(typeof(SmartCollectionEditor), typeof(UITypeEditor)));
于 2015-10-06T21:41:01.350 回答