关于Windows窗体复选框的问题

时间:2011-06-01 18:50:34

标签: c# winforms

private void frmSearch_Load(object sender, EventArgs e)
{
    // TODO: This line of code loads data into the 'bookdatabaseDataSet.Dist_Year' table. You can move, or remove it, as needed.
    this.dist_YearTableAdapter.Fill(this.bookdatabaseDataSet.Dist_Year);
    // TODO: This line of code loads data into the 'bookdatabaseDataSet.Dist_Auth' table. You can move, or remove it, as needed.
    this.dist_AuthTableAdapter.Fill(this.bookdatabaseDataSet.Dist_Auth);
    // TODO: This line of code loads data into the 'bookdatabaseDataSet.Book' table. You can move, or remove it, as needed.
    this.bookTableAdapter.Fill(this.bookdatabaseDataSet.Book);
}

private void button1_Click(object sender, EventArgs e)
{
    Form f4 = new Confirm();
    f4.Show();
    Hide();
}

private void button2_Click(object sender, EventArgs e)
{
    if (MessageBox.Show("Are you sure you want to Exit?", "Exit", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
    {
        Application.Exit();
    }   
}

我的问题是: 如果我没有选中任何复选框,我希望从表单中给出错误消息。什么是正确的代码?我应该在哪里找对吗?非常感谢您的关注。 form of windows application

4 个答案:

答案 0 :(得分:2)

对于每个复选框都执行checkbox.Checked test(布尔AND)并显示一个消息框。

如果你想阻止关闭应用程序,那么你必须处理关闭事件并在这种情况下将CANCEL设置为true。

void HandleFormClosing (object sender, CancelEventArgs args)
{
   if (checkbox1.Checked && checkbox2.Checked)
      return;

   MessageBox.Show ("Need to check all boxes");
   args.Cancel = true;
}

答案 1 :(得分:0)

这不会给你一个直接的答案(工作完成 - 只是为了你的答案),但应该指出你正确的方向:

Finding the selected Radiobutton's value in ASP.NET

答案 2 :(得分:0)

您可以使用custom validation执行此操作。

但你也可以摆脱复选框,并假设如果用户在文本框中键入,那么他们想要在该字段上进行搜索。

从禁用搜索按钮开始,仅在至少一个字段中包含文本时启用它。

答案 3 :(得分:0)

我想你想确保在点击button1时至少选中一个复选框,对吧?如果是,请将其放在button1_Click事件的开头。

private void button1_Click(object sender, EventArgs e)
{
    if (!checkbox1.Checked && !checkbox2.Checked && !checkbox100.Checked)
    {
        MessageBox.Show("Please select a checkbox.", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning);
        checkbox1.Focus();
    }
    else
    {
        Form f4 = new Confirm();
        f4.Show();
        Hide();
     }
}