SpinEdit OnExit事件更改ListBox.Font.Size

时间:2018-08-13 08:44:42

标签: delphi events onclick listbox delphi-5

我的表单上有一个ListBox,上面注册了一个OnClick事件。此事件按预期运行,除了一种特殊情况:

我的表单包含一个SpinEdit(值8-12),以允许用户调整ListBox.Font.Size属性(我也相应地调整了ListBox.ItemHeight属性)。这些调整是在SpinEdits OnExit事件中完成的,并且也可以按预期进行。

但是,当选择SpinEdit时,会发生问题,更改值,然后单击ListBox。因此,应该发生的事情是:

    触发了
  1. SpinEdit OnExit:已调整ListBox.Font.Size。
  2. 已触发ListBox OnClick:OnClick事件中定义的后续操作。

但是实际上,仅激活了SpinEdits OnExit,并且正确调整了字体大小,但不会触发ListBox的OnClick事件。本身并没有什么大不了的,但是在那之后,整个列表框就变得对鼠标单击无响应了!

值得注意的观察结果

  1. 来回切换到另一个应用程序/窗口并切换回 我的应用程序:重新获得了ListBox的响应能力。
  2. 触发问题后,与具有相同表单的CheckListBox进行交互,然后单击ListBox会触发ListBox Onclick事件。
  3. 使用Enter键触发SpinEdits OnExit事件不会带来任何问题。
  4. 该窗体包含更多具有OnExit事件的SpinEdit对象,这些事件不会更改ListBox的属性。通过单击ListBox退出这些SpinEdits可以正常工作,并且在SpinEdits OnExit事件之后立即执行OnClick事件。

0 个答案:

没有答案