我想更改它,TComboBox
以便如果我在其中输入文本或手动设置 Text 属性,它将触发OnChange
事件。
就像现在一样,doingComboBox.Text := 'blah'
不会触发OnChange
事件,也不会在框中输入内容。
我尝试创建一个TComboBox
后代,我认为这是正确的方法,但我不确定如何更改触发事件的因素。
据我所知,在组合框中输入内容将导致OnChange
事件触发。但是修改text属性确实不行。
我要OnChange
为你的组合框开火的方法是处理CM_TEXTCHANGED
消息。处理程序需要调用该Change
方法OnChange
,如果它已被分配,则该方法将调用。
举个简单的例子,这是一个插入器类的实现:
type
TComboBox = class(StdCtrls.TComboBox)
protected
procedure CMTextChanged(var Message: TMessage); message CM_TEXTCHANGED;
end;
procedure TComboBox.CMTextChanged(var Message: TMessage);
begin
inherited;
Change;
end;