首页 新闻 会员 周边

C# DockPanel文档选项卡窗体上的富文本框所有快捷操作无效

0
悬赏园豆:50 [已关闭问题] 关闭于 2014-07-24 14:30

C#一个窗体项目使用了WeifenLuo.WinFormsUI.Docking布局插件

其中文档选项卡用来显示文件内容的的,窗体上只有一个富文本框。

奇怪的事情发生了,只要把窗体停靠成文档选项卡,富文本框自带的快捷操作就丢失了,

就是Ctrl+X,Ctrl+C,Ctrl+V,Ctrl+Z都不能用。但是把窗体浮动出来又可以用了。

一开始以为是子窗体没有获取焦点,但是当前活动子窗体就是该文档窗体。问题不知道出在哪里,我自己用KeyDown事件来模拟实现组合键,但是上面的组合键仍然无效。

基本没有改过什么特别的属性,仅仅做完布局就这样。所以不知从何下手。

如图所示:

 

< >
分享
所有回答(3)
0

不要使用 WeifenLuo.WinFormsUI.Docking。

Launcher | 园豆:45045 (高人七级) | 2014-07-16 08:43
0

估计暂时也没有答案了,解决方案倒是有,我仅仅是想知道问题症结。反正问题肯定出在Docking插件上了。

说说解决方案吧:

本来我打算使用Keydown事件来手工处理组合键,但是富文本框获取焦点后上述的组合键也无效,这个原因不明,可能需要重写消息函数,估计是文本框很特殊,因为需要支持文本输入,本来就需要监听键盘。这个方法只好放弃。

我只好使用了右击菜单,给富文本框加了右击菜单,然后设置右击菜单的组合键,从而达到使用组合键操作的目的。

最终的阿瓦隆 | 园豆:111 (初学一级) | 2014-07-19 13:55
0

这个应该是windows消息机制导致的,停靠之后,富文本所在的父容器变成了主窗口,这时只有主窗口能收到系统给它的message,建议题主重写主窗口的“WndProc”等事件,把收到的消息转发給富文本所在的窗口。

数据酷软件 | 园豆:130 (初学一级) | 2020-04-26 10:03
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册