如何定义让PropertyGrid控件显示[...]按钮,并且点击后弹出自定义窗口

4 篇文章 0 订阅
3 篇文章 0 订阅

首先定义自己要弹出的窗体,比如myform:

public partial class myform: Form
{
    ....//your code here
}

从UITypeEditor继承一个自定义属性编辑管理器类,参考如下:


internal class myeditor : UITypeEditor
{
	public override System.Drawing.Design.UITypeEditorEditStyle GetEditStyle(System.ComponentModel.ITypeDescriptorContext context)
	{
		return UITypeEditorEditStyle.Modal;
	}
	public override object EditValue(System.ComponentModel.ITypeDescriptorContext context, System.IServiceProvider provider, object value)
	{
		IWindowsFormsEditorService edSvc = (IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));
		if (edSvc != null)
		{
			myform f = new myform();
			// your setting here
			edSvc.ShowDialog(f);
		}
		return value;
	}
	public override bool GetPaintValueSupported(System.ComponentModel.ITypeDescriptorContext context)
	{
		return false;
	}
}

在类的成员属性上指定所需的属性,如:


[EditorAttribute(typeof(myeditor), typeof(System.Drawing.Design.UITypeEditor))]
public youType youProperty
{
    get{...}
    set{...}
}

参考论坛:https://bbs.csdn.net/topics/190105229

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值