delphi6中checkbox的值改变时不会触发单击事件
我们可能会在checkbox中添加onclick事件,有时在程序修改checkbox的值时不想触发onclick事件怎么办呢?自从没有了OnCheckedChanged事件,好像有些麻烦,这里介绍两种方式:
第一种:要麻烦一些,先定义一个事件变量,把当前的事件保存起来,然后设置复选框的单击事件为空,赋完值后,在恢复单击事件,支持delphi6的版本
procedure SetCheckedState(const checkBox : TCheckBox; const check : boolean) ;
var
onClickHandler : TNotifyEvent;
begin
with checkBox do
begin
onClickHandler := OnClick;
OnClick := nil;
Checked := check;
OnClick := onClickHandler;
end;
end;
使用方法举例:
//toggle Checked state,把上面定义的方法要放在调用的前面
begin
SetCheckedState(CheckBox1, NOT CheckBox1.Checked) ;
end;
第二种:要简单的多,但是我目前使用的delphi6不支持,只测试了第一种方法;当设置ClicksDisabled为true时,就不会触发onclick事件了。
with TCheckBoxEx(CheckBox1) do
begin
ClicksDisabled := true;
Checked := NOT Checked;
ClicksDisabled := false;
end;
欢迎转载,请注明出处:亲亲宝宝
学习了
[回复]
这是什么状况?
[回复]