delphi – 为什么我的控件不接受键盘输入?

delphi – 为什么我的控件不接受键盘输入?,第1张

概述我已经构建了一个自定义控件,我正在尝试将输入发送到.它将接受鼠标输入并正确报告MouseDown,MouseMove和MouseUp,但无论出于何种原因,它都不接受键盘输入.当我点击它时,它没有得到焦点,我按下的任何键都被任何具有焦点的控件解释. 这可能非常简单.我想看的第一个地方是在ControlStyle属性中,但我在帮助文件中看到的关于键盘输入的唯一内容是csNoStdEvents,它会禁用 我已经构建了一个自定义控件,我正在尝试将输入发送到.它将接受鼠标输入并正确报告MouseDown,MouseMove和MouseUp,但无论出于何种原因,它都不接受键盘输入.当我点击它时,它没有得到焦点,我按下的任何键都被任何具有焦点的控件解释.

这可能非常简单.我想看的第一个地方是在ControlStyle属性中,但我在帮助文件中看到的关于键盘输入的唯一内容是csNoStdEvents,它会禁用它,而我的控件没有.那么我需要做些什么才能让我的控件能够获得输入焦点?

解决方法 一些事情要尝试:

>在MouseDown上,调用Windows.SetFocus(Handle).根据我的经验,WinAPI函数SetFocus通常比VCL的SetFocus方法更好.>响应WM_GETDLGCODE消息,回复Message.Result:= Message.Result或DLGC_WANTCHARS或DLGC_WANTARROWS或DLGC_WANTTAB或DLGC_WANTALLKEYS;

总结

以上是内存溢出为你收集整理的delphi – 为什么我的控件不接受键盘输入?全部内容,希望文章能够帮你解决delphi – 为什么我的控件不接受键盘输入?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1272520.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存