【发布时间】:2013-02-12 17:38:07
【问题描述】:
我使用此代码,但它不起作用:
private void checkcheck()
{
if (checkBox1.Text == "ON")
{
checkBox1.Checked = true;
checkBox1.ForeColor = Color.DeepSkyBlue;
}
else
{
checkBox1.Checked = false;
checkBox1.ForeColor = Color.Silver;
}
}
我从表单加载事件中调用此方法。
private void Form3_Load(object sender, EventArgs e)
{
cn.Open();
SqlCommand cmd = new SqlCommand("SELECT * FROM contacts WHERE id = '" + label2.Text + "' ", cn);
SqlDataReader reader = cmd.ExecuteReader();
if (reader.HasRows)
{
while (reader.Read())
{
textBox1.Text = reader[1].ToString();
textBox2.Text = reader[2].ToString();
textBox3.Text = reader[3].ToString();
textBox4.Text = reader[4].ToString();
checkBox1.Text = reader[5].ToString();
}
}
cn.Close();
checkcheck();
}
就是这样,表单加载,然后复选框根据数据改变,然后它会改变, 当我运行它时,它完美地获取数据,并将复选框更改为 On/Off 但没有颜色或检查
【问题讨论】:
-
你有没有试过调试看看它是否进入
if (checkBox1.Text == "ON") -
你确定你的
checkBox1.Text是“ON”吗? -
您可能需要阅读dotnetperls.com/debugging
-
我通常会采用另一种方式,
if (checkBox1.Checked) { checkBox1.Text = "ON"; }或同时设置.Checked和.Text。 -
是的,它从数据库中读取...等等,我将添加从数据中读取的代码