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