2015-10-06 40 views

回答

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)));