首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >TCustomControl如何接收输入焦点?

TCustomControl如何接收输入焦点?
EN

Stack Overflow用户
提问于 2009-09-09 09:37:22
回答 1查看 1.9K关注 0票数 4

我正在写一个基于TCustomControl的网格控件,这样我就可以自己处理所有的结构,绘画和导航。我似乎不能理解的是:

在我的构造函数中,我将ControlStyle设置为:

代码语言:javascript
运行
复制
ControlStyle := ControlStyle + [csCaptureMouse, csClickEvents,
    csDoubleClicks, csNeedsBorderPaint, csPannable];

我的想法是,如果控件处理鼠标事件,我可以做一些事情,如设置选择等。但我注意到,控件永远不会收到焦点。我碰巧在表单上有一个TComboBox,在创建表单时,它显然是有焦点的。无论我在网格中点击多少次,焦点都停留在组合框上。

当然,这也会影响我对键盘事件的处理。

所以问题是,如何确定当您单击某个控件时,焦点应该转移到该控件上?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-09-09 10:16:56

当CustomControl被点击时,它应该会调用SetFocus。

代码语言:javascript
运行
复制
procedure TMyCustomControl.MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  inherited;

  if not (csDesigning in ComponentState) and CanFocus then
    SetFocus;
票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1398578

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档