检查是否检查了toolstripmenuitem

时间:2015-04-18 07:51:46

标签: c#

    private void Form1_FormClosed(object sender, FormClosedEventArgs e)
    {
        if (clearHistoryOnQuitToolStripMenuItem.Checked)
        {
            System.Diagnostics.Process.Start("rundll32.exe", "InetCpl.cpl,ClearMyTracksByProcess 255");
        }

    }

我没有收到任何错误,但即使未选中该项,程序仍会在if语句中执行操作。

1 个答案:

答案 0 :(得分:0)

您执行if语句的内容没有任何问题,因此必须存在上述内容之外的问题。

在进一步了解Checked声明之前,请确保if状态......您可以在那时找到答案。

尝试以下操作,看看运行时写入控制台的内容。

private void Form1_FormClosed(object sender, FormClosedEventArgs e)
    {
        Console.WriteLine(clearHistoryOnQuitToolStripMenuItem.CheckState.ToString());
        if (clearHistoryOnQuitToolStripMenuItem.Checked)
        {
            System.Diagnostics.Process.Start("rundll32.exe", "InetCpl.cpl,ClearMyTracksByProcess 255");
        }

    }

祝你好运&至少从这里你可以弄清楚为什么你的Checked州总是回归真实(或者是它!)......