C# 启用或禁用控件

C# enabling or disabling control

所以,我对软件中的一个错误失去了理智。

我有这段代码,我在我的软件中使用了2次,其他功能相似(但名称不同)的功能正常。但是这个是倒置的...

我的意思是:当 groupbox.text 包含 "INC" 时不是启用控件,而是禁用它们。

知道发生了什么吗?

`private void Enable_disableSTM()
    {
        if (STM_groupBox.Text.Contains("INC"))
        {
            STM_radioButton_appel.Enabled = true;
            STM_radioButton_autre.Enabled = true;
            STM_radioButton_resolution.Enabled = true;
            STM_Textbox_SR.Enabled = true;
            STM_textBox_remarque.Enabled = true;
            STM_Dropdown_Sendto.Enabled = true;
            STM_pictureBox_Boutonenvoyer.Enabled = true;
        }
        else
        {
            STM_radioButton_appel.Enabled = false;
            STM_radioButton_autre.Enabled = false;
            STM_radioButton_resolution.Enabled = false;
            STM_Textbox_SR.Enabled = false;
            STM_textBox_remarque.Enabled = false;
            STM_Dropdown_Sendto.Enabled = false;
            STM_pictureBox_Boutonenvoyer.Enabled = false;
        }
    }    `

编辑:

就像我说的,在我的软件中我有其他功能可以正常工作。我也尝试将我的 IF 更改为 STM_Textbox_reademail.Text != "" 但它仍然无法正常工作。它是倒置的。不该启用时启用,也禁用。

`if (SQ_TextBox_reademail.Text != "")
        {
            SQ_radioButton_appel.Enabled = true;
            SQ_radioButton_autre.Enabled = true;
            SQ_radioButton_resolution.Enabled = true;
            SQ_Textbox_SR.Enabled = true;
            SQ_textBox_remarque.Enabled = true;
            SQ_Dropdown_Sendto.Enabled = true;
            SQ_pictureBox_Boutonenvoyer.Enabled = true;
        }
        else
        {
            SQ_radioButton_appel.Enabled = false;
            SQ_radioButton_autre.Enabled = false;
            SQ_radioButton_resolution.Enabled = false;
            SQ_Textbox_SR.Enabled = false;
            SQ_textBox_remarque.Enabled = false;
            SQ_Dropdown_Sendto.Enabled = false;
            SQ_pictureBox_Boutonenvoyer.Enabled = false;
        }   `

编辑 2:好的...我想出了一些可行的方法。我现在在不同的地方调用我的函数并且它正在工作。仍然不明白为什么我可以在同一个地方打电话给另一个并且它有效但是这个没有......但是嘿......现在它有效了!谢谢大家!

您的问题是您正在以区分大小写的方式检查字符串是否包含 "INC" 单词解决方案是更改 if 语句以检查字符串中的 inc 单词忽略大小写:

    private void Enable_disableSTM()
    {
        if (STM_groupBox.Text.IndexOf("INC", StringComparison.OrdinalIgnoreCase) >= 0;)
        {
            STM_radioButton_appel.Enabled = true;
            STM_radioButton_autre.Enabled = true;
            STM_radioButton_resolution.Enabled = true;
            STM_Textbox_SR.Enabled = true;
            STM_textBox_remarque.Enabled = true;
            STM_Dropdown_Sendto.Enabled = true;
            STM_pictureBox_Boutonenvoyer.Enabled = true;
        }
        else
        {
            STM_radioButton_appel.Enabled = false;
            STM_radioButton_autre.Enabled = false;
            STM_radioButton_resolution.Enabled = false;
            STM_Textbox_SR.Enabled = false;
            STM_textBox_remarque.Enabled = false;
            STM_Dropdown_Sendto.Enabled = false;
            STM_pictureBox_Boutonenvoyer.Enabled = false;
        }
    } 

好的...我找到了一些有用的东西。我现在在不同的地方调用我的函数并且它正在工作。仍然不明白为什么我可以在同一个地方打电话给另一个并且它有效但是这个没有......但是嘿......现在它有效了!谢谢大家!