我的WinForms CheckBox代码问题

时间:2010-08-10 05:52:10

标签: c# checkbox port

我有一个要求,如果我点击Checkboxes,那么应该更新相应的端口,这些更新的端口将用于另一个文件,用于将输出发送到这些特定端口。因此,当我点击Clickbox 1 4和7时,应该启用那些相应的端口。在输出必须发生的地方(即,class2),我运行一个循环,它将在while循环(例如)中从端口读取,因此只有1 4和7个启用的端口应该运行。问题是,如果我点击复选框1 2 3,即连续数字,它工作正常,如果我点击说7,然后循环减少,最后端口从1到7启用时只有7应该闪烁。即,从7开始,然后是6,然后是5,然后是5,最后是1,当只有7个闪烁时,所有灯都闪烁。

这是复选框条件:

    private void checkBox4_CheckedChanged_1(object sender, EventArgs e)
    {
        if (sender is CheckBox)
        {
            CheckBox checkbox = sender as CheckBox;
            if (checkbox.Checked)
            {
                Enableports[4] = true; or Enableport(4); // im setting that port 4 to true( Enableports[4] = true ) and directly entering the value in another API( Enableport(4) ). 
            }
            else
            {
                Disableport(4);
            }
        }
    }

这是循环:(这是另一个类) bool [] Enabledports {get;组;是启用端口的声明。 void Enableport(int output);一个人。

            for (int i = 0; i <= 12; i++)
            {
                if (Enabledports[i] == true) // API to check those enabled ports only
                {
                    Enableport(i);
                }

            } 

此处Enabledports为bool[]返回类型。

我不确定我是否正确行事。我只是一个初学者,任何帮助都将受到高度赞赏。

1 个答案:

答案 0 :(得分:0)

我不能完全确定我是否正确理解了你的问题,但无论如何我会提供最好的建议:

  1. 我认为在一个地方(“另一个类中的循环”)执行“EnablePort()”和在另一个地方执行“DisablePort()”是一个坏主意(在“else”子句中) checkBox4_CheckedChanged_1()事件处理方法)。

  2. 我不明白为什么你必须在循环中执行“EnablePort()”而不是直接从checkBox4_CheckedChanged_1()方法调用它,如果没有特别要求,我建议只调用“EnablePort”( )“直接。

  3. 只是我的2美分......