2013-03-11 18 views
0

在一个winform上,我有三个不同的复选框。他们都不会通过编程方式接受对其状态的任何更改,只能通过鼠标点击。为什么?CheckBox不接受代码中的状态变化

enter image description here

这里是我如何设置他们的状态在我的代码:

if i=1 then 
    ClientChk.Checked := true 
else 
    ClientChk.Checked := false; 

if i = 2 then 
    HostChk.Checked := true 
else 
    HostChk.Checked := false; 

回答

1

您已经发布代码,没有上下文,并且希望我们尝试和心理上调试它。我会给它一个镜头,但你真的需要学会让你的问题更加完整。

我的猜测是,在你没有张贴代码的某个地方,你启用/基础上Enable Remote Mode框是否被选中禁用ClientChkHostChk,当它不是(在你的形象)选中,ClientChkHostChk按钮被禁用。通过你的代码(或使用调试器)快速浏览会很快发现问题所在。

可以一定程度上改善你的代码,BTW(和处理启用/基础上的EnableRemoteChk值禁用它们:

ClientChk.Enabled := EnableRemoteChk.Checked; 
HostChk.Enabled := ClientChk.Enabled; 
if ClientChk.Enabled then 
begin 
    ClientChk.Checked := (i = 1); 
    HostChk.Checked := (i = 2); 
end;