【问题标题】:cannot write in textbox wpf无法在文本框 wpf 中写入
【发布时间】:2016-07-07 11:55:45
【问题描述】:

我有一个 WPF 项目(创建 dll)。添加的文本框(或列表框)将只接受复制、粘贴、删除和退格。我不知道为什么文本框有这种行为。系统接收所有事件(KEYUP、KEYDOWN、PREVIEWKEYUP、PREVIEWKEYDOWN,但如果输入字符则不会更改文本。

TEXTCHANGED 事件仅在删除、粘贴等操作时触发。

文本框是启用的,不是只读的。

任何帮助将不胜感激。 谢谢,塔利亚。

【问题讨论】:

  • 嗨 Talia - 从你的问题中不清楚你是否神秘地获得了具有这种行为的文本框,并且“无法在文本框 wpf 中写入”是问题,或者你想创建这样的文本框,并且想要关于如何做的一些建议。请你澄清一下?
  • 我不知道为什么文本框有这种行为。我想在文本框旁边写。
  • 您能否举例说明您实际上是如何创建它们的。
  • 是的,只需从工具箱中添加即可。

标签: wpf textbox


【解决方案1】:

添加这个:

Window window1 = new Window(); 
System.Windows.Forms.Integration.ElementHost.EnableModelessKeyboardInterop(window1); 
window1.Show(); 

应该修复错误。

还添加对 WindowsFormsIntegration 的引用。

谢谢大家!

【讨论】:

  • 你没有提到WinForms集成!
  • 没有与 WinForms 集成...这是 wpf 项目。虽然在解决方案中还有其他 WinForms 项目...
【解决方案2】:

我遇到了同样的问题,然后意识到我已经处理了父窗口上的 KeyDown 事件(并将 e.Handled 设置为 true)。这实际上阻止了任何子控件看到 KeyDown 事件。

【讨论】:

    【解决方案3】:

    我以前遇到过这种情况,我唯一的解决方案是创建一个新的解决方案/项目并复制代码。

    很奇怪!

    【讨论】:

    • 我确实按照你说的做了,但没有帮助。我仍然不知道该怎么做......
    • 如果你创建一个新的解决方案和空项目,你仍然得到相同的结果吗?
    • 我打开了一个新的 wpf 应用程序,然后就可以了。但我的项目是 wpf 用户控件库。我应该创建一个dll。无论如何创建一个新的解决方案并复制所有内容,因为其中有很多项目。还有其他方法吗?谢谢
    • 这可能是一个长镜头,尝试安装/重新安装 .net 3.5 sp1 - social.msdn.microsoft.com/forums/en-US/wpf/thread/…
    • 我安装了 .net 3.5 sp1。我卸载并重新安装了它。它没有帮助。
    猜你喜欢
    • 2013-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-25
    • 1970-01-01
    • 2019-07-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多