【问题标题】:How can I check if a Win32 Window pointer is a valid .Net Control?如何检查 Win32 窗口指针是否是有效的 .Net 控件?
【发布时间】:2009-09-02 12:44:07
【问题描述】:

如何检查 Win32 窗口指针是否是有效的 .Net 控件?

【问题讨论】:

    标签: c# .net winforms winapi


    【解决方案1】:

    我假设“Win32 窗口指针”是指 hWnd。

    您可以调用 Control.FromChildHandle() 提供您的 hWnd 作为参数。如果 hWnd 与 .NET 控件相关联,那么您将收到作为返回值的对表示该控件的 .NET 控件的引用。如果 hWnd 没有与 .NET 控件关联,那么您将收到一个 null 值作为返回值。

    伪代码如下:

    Control AssociatedDotNetControl = 
        Control.FromChildHandle(Win32WindowPointerAshWnd);
    
    if(AssociatedDotNetControl != null)
    {
        // this is a .NET control
    }
    else
    {
        // this is not a .NET control
    }
    

    【讨论】:

    • 马特,我没有具体尝试过,但我猜它确实会起作用。
    • 如果句柄来自不同的程序,它不起作用Control.FromHandle( 也没有
    猜你喜欢
    • 1970-01-01
    • 2010-11-02
    • 1970-01-01
    • 1970-01-01
    • 2016-05-25
    • 1970-01-01
    • 2021-12-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多