【问题标题】:How to find control based on Name attribute如何根据名称属性查找控件
【发布时间】:2017-10-23 07:01:05
【问题描述】:

我正在使用 Windows 7 和 c# 来制作一个应用程序来控制另一个我使用 c# 和 .net 制作的 GUI 应用程序)。在这个应用程序中,我想获取 GUI 应用程序内某些控件的状态。我正在寻找一种方法来根据控件的“名称”属性为我提供控件的句柄。但是找不到任何适合我需要的东西。我已经设法获得了 GUI 应用程序中所有控件的句柄列表,但是如何在此列表中搜索具有正确“名称”的控件?我已经尝试使用Control.FromHandle 将句柄转换为Control 对象,但这似乎不起作用,因为它为所有句柄返回null。有什么想法吗?

【问题讨论】:

  • 当您尝试跨流程边界执行此操作时,一切都会变得困难一千倍。如果这是您的应用程序,那么有上千个理由不这样做,或者使用受支持的 .NET 进程互操作机制,如命名管道、套接字、WCF。如果这不是您的应用程序,那么唯一合理的方法是 UI 自动化,由 System.Windows.Automation 命名空间支持。

标签: c# .net windows-7


【解决方案1】:

Mb 帮助这个?: typeof([typeFromYourAssembly]).Assembly.GetTypes().ToList().Single(i=>i.IsSubclassOf(typeof(UserControl)) && i.Name == "[ControlName]")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-04-14
    • 2021-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-27
    相关资源
    最近更新 更多