【发布时间】:2011-04-26 03:43:31
【问题描述】:
使用 WinForms 我正在编写一个组件用户控件,我希望它能够显示一个设计器编辑器表单,我可以在其中看到组件所在表单上所有控件名称的列表。
我得到了组件用户控件的基本机制和设计器编辑器的支持。我的问题与此无关。
假设我有一个表单,在 IDE 中,我将组件放置在组件托盘中,并将其他几个控件放置在表单上。现在,我调用组件的设计器编辑器并显示控件名称列表。
这是一段代码:
internal class MyComponentEditor : UITypeEditor
{
public override object EditValue
(
ITypeDescriptorContext context,
IServiceProvider provider, object value
)
{
var instance = context.Instance as MyComponent;
var container = instance.Container;
var controls = container.Components.Cast<Control>;
var names = controls.Select (x => x.Name);
}
}
这里,names 变量应该包含所有控件的名称,但我只得到类型名称!
必须是显而易见的东西... ;)
【问题讨论】:
-
是否有像
var names = controls.Select (x => x.ID);这样的 ID 属性。假设你想要的就是你想要的“名字”? -
不,没有 ID 属性。
标签: c# winforms user-controls