【问题标题】:If checkbox checked do something else uncheck如果选中复选框,请执行其他操作取消选中
【发布时间】:2020-08-03 03:25:14
【问题描述】:

我正在尝试创建一个 if 语句来提示我询问我是否确定要选中该复选框。如果复选框已被选中,只需取消选中该框。以下是我似乎无法开始工作的内容。谢谢!如果有人有这样做的简单方法,请告知。

if (checkBox15.Checked == false)
{
    MessageBox.Show("Are you sure you want to check this?", "Prompt", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
    { 
        Updatelist(); 
    } 
    else
    {
        checkBox15.Checked = false;
        return;
    }  
}
else  if (checkBox15.Checked == true)
{
    checkBox15.Checked = false;
    return;
} 

【问题讨论】:

  • 你的代码在什么情况下?你用的是什么用户界面?窗体?
  • 这是在 MouseClick 事件中。

标签: c# if-statement events checkbox


【解决方案1】:

你错过了if(

if(MessageBox.Show("Are you sure you want to check this?", 
    "Prompt", 
    MessageBoxButtons.YesNo, 
    MessageBoxIcon.Question) == DialogResult.Yes)
{ 
    Updatelist(); 
}
else
{
    checkBox15.Checked = false;
    return;
}  

【讨论】:

  • 这也取决于调用此方法的何处。如果内部检查更改了事件处理程序,这将创建无限递归-> stackoverflow。在这种情况下,您可能需要使用一些布尔开关。
  • @Tigran 它正在创建一个递归。关于开关的外观有什么建议吗?
  • @hexc:创建一个实例布尔值,切换值(比如变为真)之前 checkBox15.Checked = false;。并在事件处理程序中检查该布尔值是否为真,将其设置为假(将其重置为原始值)并返回,因此不要处理任何内容,因为它甚至因 checkBox15.Checked = false; 而被触发;代码。
【解决方案2】:

这是你的答案

if (checkBox15.IsEnabled == false)
{
MessageBox.Show("Are you sure you want to check this?", "Prompt",    MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{ 
    Updatelist(); 
} 
else
{
    checkBox15.IsEnabled = false;
    return;
}  
}`enter code here`
else  if (checkBox15.IsEnabled == true)
{
checkBox15.Checked = false;
return;

【讨论】:

    猜你喜欢
    • 2011-05-13
    • 1970-01-01
    • 1970-01-01
    • 2017-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-24
    • 2019-02-16
    相关资源
    最近更新 更多