0

WinFormには、3つの異なるチェックボックスがあります。それらはすべて、プログラムで状態の変更を受け入れることはありませんが、マウスをクリックするだけで受け入れられます。なんで?

ここに画像の説明を入力してください

コードで状態を設定する方法は次のとおりです。

 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

あなたは文脈のないコードを投稿しました。私たちがあなたのためにそれを精神的にデバッグしようとすることを期待してください. 試してみますが、質問をより完全なものにすることを本当に学ぶ必要があります。

私の推測では、投稿しなかったコードのどこかで、ボックスがチェックされているかどうかに基づいて有効化/無効化されており、チェックされていない場合 (画像のように)ClientChkHostChkボタンが無効になっていると思います。コードを (またはデバッガーを使用して) すばやく調べると、それが問題であるかどうかがすぐにわかります。Enable Remote ModeClientChkHostChk

ところで、コードをいくらか改善することができます(そして、の値に基づいてそれらの有効化/無効化を処理します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 に答える