0
使用PropertyGrid,我怎樣才能使集合編輯器打開時,我點擊列表參數變成無模式而不是模態?你如何使CollectionEditor無模式?
使用PropertyGrid,我怎樣才能使集合編輯器打開時,我點擊列表參數變成無模式而不是模態?你如何使CollectionEditor無模式?
創建一個新的類型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)));