gpt4 book ai didi

c# - 从用户控件代码隐藏,在设计模式下,如何获取父控件中包含的所有控件名称?

转载 作者:行者123 更新时间:2023-11-30 12:36:05 27 4
gpt4 key购买 nike

我正在使用 WinForms 编写一个组件用户控件,我希望它能够显示一个设计器编辑器表单,我可以在其中看到组件所在表单上所有控件名称的列表。

我得到了组件用户控件的基 native 制和设计器编辑器的支持。我的问题不是关于那个。

假设我有一个表单,在 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));

关于c# - 从用户控件代码隐藏,在设计模式下,如何获取父控件中包含的所有控件名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3946079/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com