0

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

在此处输入图像描述

这是我在代码中设置它们的状态的方式:

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

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

1 回答 1

1

您发布了没有上下文的代码,并希望我们尝试为您进行心理调试。我会试一试,但你真的需要学会让你的问题更完整。

我的猜测是,在您未发布的代码中的某处,您正在启用/禁用ClientChk,并且HostChk基于该Enable Remote Mode框是否被选中,以及当它未被选中时(如您的图像中所示),ClientChkandHostChk按钮被禁用。快速浏览您的代码(或使用调试器)会很快告诉您是否是问题所在。

顺便说一句,您可以稍微改进您的代码(并根据以下值处理启用/禁用它们EnableRemoteChk

ClientChk.Enabled := EnableRemoteChk.Checked;
HostChk.Enabled := ClientChk.Enabled;
if ClientChk.Enabled then
begin
  ClientChk.Checked := (i = 1);
  HostChk.Checked := (i = 2);
end;
于 2013-03-11T15:47:51.230 回答