如何使 CollectionEditor 成为无模式的?
How do you make a CollectionEditor modeless?
使用 PropertyGrid,如何使单击列表参数时打开的集合编辑器变为无模式而不是模式?
创建新类型的 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)));
使用 PropertyGrid,如何使单击列表参数时打开的集合编辑器变为无模式而不是模式?
创建新类型的 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)));