PropertyGrid を使用して、リスト パラメーターをクリックすると開くコレクション エディターをモーダルではなくモードレスにするにはどうすればよいですか?
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 に答える