【发布时间】:2014-01-02 18:08:29
【问题描述】:
使用 TListBox 获得“OnChange”类型的功能是否有技巧?我可以对组件进行子类化并添加属性等,然后仅在索引更改时才执行 OnClick 代码...我还可以使用表单级变量对其进行破解以存储当前索引,但只是想知道我是否忽略了之前的明显我选择一种方式。
【问题讨论】:
-
OnChange类型功能是什么意思?内容变化、选择变化、组合,还有什么? -
@TLama "...如果 Index 发生变化..." ;o)
-
TListBox 没有 OnChange 事件,只有 OnClick。基本上,如果您使用 OnClick 并单击控件而不是某个项目,它仍会触发 OnClick 事件,该事件可以重新触发代码,除非您还跟踪先前选择的索引。我正在寻找的可能是针对控件设计的,但更像是列表形式的 TComboBox。
-
每当用户通过鼠标或键盘选择一个项目时,
OnClick事件(在这种情况下是一个非常混乱的名称)都会被触发,但当您通过ItemIndex属性在代码中设置它时不会触发(您可以通过覆盖SetItemIndex方法并从那里调用Click来绕过它)。 -
如果您单击列表框中的任何位置,OnClick 似乎会触发...您不必实际单击某个项目。如果您单击已选择的项目,它也会触发。所以我只希望 OnClick 在选择了不是前一个项目或列表框本身的实际项目时触发。 IE。模拟 OnChange 事件。
标签: delphi onclick subclass onchange tlistbox