在winform上我有三个不同的复选框。他们都不会以编程方式接受对其状态的任何更改,只能通过鼠标单击。为什么呢?
以下是我在代码中设置状态的方法:
if i=1 then
ClientChk.Checked := true
else
ClientChk.Checked := false;
if i = 2 then
HostChk.Checked := true
else
HostChk.Checked := false;
答案 0 :(得分:1)
您发布的代码没有上下文,并希望我们尝试为您精神调试它。我会试一试,但你真的需要学会让你的问题更加完整。
我的猜测是,在您未发布的代码中的某个位置,您根据是否选中ClientChk
框以及何时选中HostChk
和Enable Remote Mode
来启用/停用未选中(如图片中所示),ClientChk
和HostChk
按钮被禁用。快速浏览代码(或使用调试器)可以很快地告诉您是否存在问题。
您可以稍微改进一下代码,BTW(并根据EnableRemoteChk
的值处理启用/禁用它们:
ClientChk.Enabled := EnableRemoteChk.Checked;
HostChk.Enabled := ClientChk.Enabled;
if ClientChk.Enabled then
begin
ClientChk.Checked := (i = 1);
HostChk.Checked := (i = 2);
end;