【问题标题】:System.Windows.Controls.TextBox HandleSystem.Windows.Controls.TextBox 句柄
【发布时间】:2011-06-30 14:30:55
【问题描述】:

我觉得我在这里遗漏了一些非常明显的东西。

我知道表单通常具有Handle 属性,但我使用的是System.Windows.Controls.TextBox,它没有Handle 属性。

如何访问TextBox 的句柄?我注意到RichTextBox 有Handle 属性,那么为什么不是常规的TextBox

【问题讨论】:

    标签: c# wpf .net-3.5 textbox


    【解决方案1】:

    你可以在 TextBox 上调用Handle。它是从System.Windows.Forms.Control 继承的属性。

    编辑:问题已更新为询问 WPF

    WPF 不像典型的 Win32 应用程序或 WinForms 应用程序那样使用句柄。每个控件在 WPF 中都不是它自己的窗口。您可以使用 Spy++ 验证这一点,它无法区分每个控件。因此,您不能像使用 WinForms 和 Win32 应用程序那样向单个控件发送消息。

    您可以使用WindowInteropHelper 获取 WPF 窗口的父窗口句柄。

    【讨论】:

    • @Brian 抱歉。我发错了。我已经修复了帖子,现在您可以看到它根本没有继承自 System.Windows.Forms。它是一个 WPF 文本框
    • @Darkhydro:相应地更新了答案。
    • @Brian 什么?!那么,如何将本机 Windows 消息传递协议与 WPF 表单一起使用..?如果我拿不到手柄,我就不能使用这些东西。
    • @Darkhydro:你只需要使用其他类型的进程间通信。
    • 如果有帮助,您还可以在 WPF 应用程序中托管一个 winforms 控件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-26
    • 1970-01-01
    • 2011-09-04
    • 2020-04-02
    相关资源
    最近更新 更多