繼承 UITypeEditor,覆寫 GetEditStyle 回傳 Modal,EditValue 中透過 IWindowsFormsEditorService 顯示計算機 Form (FormKeyBoard),使用者按確定後回傳計算結果字串。
public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value) {
var service = (IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));
var form = new FormKeyBoard();
return service.ShowDialog(form) == DialogResult.OK ? form.strReturnValue : value;
}
[Editor(typeof(CalculatorSelectEditor), typeof(UITypeEditor))]
[Category("自訂計算機屬性")]
[Description("請輸入金額")]
public string Money { get; set; }
設計時點擊屬性值旁按鈕即彈出計算機視窗。