【问题标题】:TListbox - OnChangeEvent does not fire reliable on multiselectTListbox - OnChangeEvent 在多选时不会可靠触发
【发布时间】:2015-12-21 08:16:52
【问题描述】:

我正在使用 XE7 和 FMX。

我的问题是 TListbox 的 OnChange-Event 不能与多选一起正常工作(每次发生更改时它都不会触发)。

重现步骤:

  • 创建一个 FMX 应用程序并将一个 TListbox 添加到他的表单中。
  • 将项目添加到此列表框。
  • 将列表框的“MultiSelectStyle”设置为“默认”。
  • 处理 OnChangeEvent(设置断点或执行某些操作...)。
  • 现在运行项目并点击第一个Item -> OnChange 被执行。
  • 但如果再次单击第一项,则 OnChange 将不会执行

可以告诉我如何解决这个问题,以便每次选择更改时我都会收到一个事件。

【问题讨论】:

  • 使用 onClick 事件来处理这个问题。再次单击时所选项目未更改。

标签: delphi onchange firemonkey multi-select tlistbox


【解决方案1】:

来自文档FMX.ListBox.TCustomListBox.OnChange

在列表框中的选择更改时发生。 编写一个 OnChange 事件处理程序以在列表框中选择一个或多个新项目后立即执行特定操作。

使用OnClickOnItemClick 事件来监视用户何时重新选择相同的选择。并为所有新选择保留 OnChange 处理程序。

【讨论】:

  • OnClick 仅在使用鼠标选择项目时触发,而在使用键盘选择项目时不会触发。
  • @Rynardald,您将使用 onClick 事件来处理再次单击所选项目。对于其他人,您将使用 onChange
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多