我有两个部分(主要和次要),表单中有几个显示信息的文本框。在次要部分我添加了一个复选框(选中时)我想将主要部分字段中的信息复制到次要部分的字段中。如果未经检查,我希望它将该字段留空。
以下是一些示例代码,可帮助您查看我要执行的操作:
CheckChanged事件调用四种不同的方法(每种方法都包含特定复选框的逻辑):
private void CheckBoxCheckedChanged(
{
Method1();
Method2();
Method3();
Method4();
}
当调用Method4时,如果选中它,我想处理上面提到的逻辑,如果没有,则留空。
private void Method4()
{
if (checkBox4.Checked = true)
{
secondaryTextbox.Text = primaryTextbox.Text;
}
else if (checkBox4.Checked = false)
{
secondaryTextbox.Text = "";
}
}
我遇到的问题是,当我选中复选框后执行此操作时,我无法再取消选中将该字段更改为空白。
我做错了什么,或者有更好的方法来解决这个问题?
如果我发错了,我提前道歉,这是我第一次使用SO。
答案 0 :(得分:4)
您编写的代码在if语句的表达式中进行了赋值(=
),但这不是您的意思。如果要进行比较,则应使用==
。或者甚至更好,只需这样做:
if (checkBox4.Checked)
{
secondaryTextbox.Text = primaryTextbox.Text;
}
else
{
secondaryTextbox.Text = "";
}
Paolo指出您尝试的代码会给出编译器警告。如果您尝试永远不会编写产生警告的代码,您可以更快地捕获这样的简单错误。甚至可以选择将警告视为可以使用的错误。
答案 1 :(得分:2)
你需要
if (checkBox4.Checked == true)
检查是否为真,你这样做的方式总是给它赋值“true”
答案 2 :(得分:1)
当您打算进行测试时,您正在执行任务
使用此
if (checkBox4.Checked == false)
或更好的
if (false == checkBox4.Checked)
甚至更好
if ( ! checkBox4.Checked)
而不是
if (checkBox4.Checked = false)
答案 3 :(得分:1)
您的代码中存在一个非常小的问题:
您使用 = 而不是 ==
最好定义一个复选框和文本框的数组,而不是 func1,func2,func3,func4
答案 4 :(得分:0)
您正在使用单个“=”来检查复选框。 这具有设置复选框状态的效果。
使用“==”,如
if (checkBox4.Checked == true)
或者事实上,更好:
if (checkBox4.Checked)