读书人

C# 自定义控件自定义属性编辑器怎么

发布时间: 2012-11-08 08:48:12 作者: rapoo

C# 自定义控件,自定义属性编辑器如何获取相应组建中其他属性值
自定义控件 设置了个自定义属性,自定义属性有自定义编辑器,自定义编辑器需要根据自定义控件其它的属性之筛选数据,
如何取到这个自定义控件的其他属性值。

C# code
public override object EditValue(System.ComponentModel.ITypeDescriptorContext context, System.IServiceProvider provider, object value)        {            System.Windows.Forms.Design.IWindowsFormsEditorService service =(System.Windows.Forms.Design.IWindowsFormsEditorService)provider.GetService(typeof(System.Windows.Forms.Design.IWindowsFormsEditorService));            if (service == null)            {                return null;            }            PropertyWindow form = new PropertyWindow();          form.TableName="这里需要这个自定义控件的其他属性值";            if (service.ShowDialog(form) == DialogResult.OK)            {                return form.SelectedValue;            }            return value;        }


[解决办法]
1.取到对象就可以 使用了啊, 如果权限不够 把 modif 那个属性 改成 Public
2.对象 定义一个公共属性 来做值传递。
3.如果需要扩展事件的方式那就 委托。
[解决办法]
一般可以用ITypeDescriptorContext中拿到编辑对象。假设自定义控件叫MyControl,那么:
C# code
MyControl my = context==null ? null : context.Instance as MyControl;if(my != null){    form.TableName = my.XXX;} 

读书人网 >C#

热点推荐