乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 71|回复: 3

选项板控件事件处理问题

[复制链接]

154

主题

1274

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1936
发表于 2018-9-8 18:15:53 | 显示全部楼层 |阅读模式
我有一个调色板,像其他调色板一样,不会触发lostFocus事件。
实际上,发生的情况是我在调色板上托管了几个控件,当调色板不再具有焦点时,在调色板上具有焦点的控件保持焦点,而绑定到应该触发的控件的事件永远不会保持焦点
直接的问题是DataGridView具有可编辑的值,当不再编辑项目时,该值应该立即强制更新绘图中的关联对象。
以下事件已添加到datagrid、CellEndEdit、EditingControlShowing和(Column)KeyPress中,除CellEndEdit之外,这些事件将按预期方式触发。除非在关闭组件面板或继续执行其他操作之前,在组件面板中选择了不同的控件,否则它不会触发。
对于如何解决此问题,我将不胜感激。

本帖以下内容被隐藏保护;需要你回复后,才能看到!

游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

154

主题

1274

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1936
发表于 2018-9-8 22:50:19 | 显示全部楼层
ApplicationServices.PreTranslateMessage或System.Messaging.MessageQueue?
也许在句柄不是您的调色板的WM_SETFOCUS查找消息?
或WM_ACTIVATE /WA_INACTIVE,
或onMouseEnter
回复

使用道具 举报

154

主题

1274

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1936
发表于 2018-9-13 23:07:07 | 显示全部楼层
我想我已经解决了这个问题,尽管似乎没有什么工作,因为事件在调色板中工作不太正常。
首先,我更改了更新绘图的位置。我没有在EndCellEdit中这样做,而是创建了另一个函数来使用更改的值更新绘图并消除了EndCellEdit事件。
我实现了EditingControlShow事件并将KeyPress、PreviewKeyDown和LostFocus添加到编辑控件
在PreviewKeyDown事件中,我过滤了回车键。如果用户按下Enter键,则调用该函数来更新绘图(该字段上的所有编辑都已完成)。
在KeyPress事件中,我过滤了所有对数字输入无效的值,这解决了在输入数据后必须解析数据的问题。
在文本框的LostFocus事件中,我格式化文本框中的值(此时编辑文本框仍然处于活动状态)并通过Enter键手动调用PreviewKeyDown(此事件不触发)。
因此,用户在网格中编辑一个值,如果将鼠标从调色板上移开,TextBox失去焦点,它用Enter键调用PreviewKeyDown,提交Enter,触发功能更新绘图,一切正常。
回复

使用道具 举报

154

主题

1274

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1936
发表于 2018-9-17 07:38:13 | 显示全部楼层
很高兴你找到了工作,我玩了应用服务。PreTranslateMessage,创建了一堆p/调用,并放弃了lol
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-2-4 08:56 , Processed in 0.269530 second(s), 60 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表