[英]How do I add CSS styles to an ASP.NET UserControl from the code-behind?
[英]From a usercontrol code-behind, in design mode, how do I get all the controls names contained in the parent?
使用WinForms,我正在编写一个组件用户控件,以使其能够显示设计器编辑器窗体,在该窗体中可以看到组件所在窗体上所有控件名称的列表。
我获得了组件用户控件的基本机制以及设计编辑器的支持。 我的问题不是这个。
假设我有一个表单,在该表单中,我将组件放置在IDE中的组件托盘中,并在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变量应该包含所有控件的名称,但是我只能得到类型名称!
必须是显而易见的东西;;)
好的,我钉好了。
对于每个控件,您需要执行以下操作以获取控件的名称:
(string)TypeDescriptor.GetProperties (control)["Name"].GetValue (control)
从我的例子:
var names = controls.Select (x => (string)TypeDescriptor
.GetProperties(x)["Name"]
.GetValue(x));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.