当前位置:  开发笔记 > 编程语言 > 正文

编程技巧测试员(问题)

如何解决《编程技巧测试员(问题)》经验,为你挑选了2个好方法。

我正在开发一个程序,它将根据代码完成第2版中的32个主题,告诉程序员在初级,中级或专家级别.我正在使用32个复选框和一个方法来判断哪些被点击.问题是当我检查check复选框属性是否等于true时,它会在复选框实际检查之前得到结果.这是我的所有源代码(到目前为止):

public partial class Main : Form
{
    private int baseScore = 0;

    public Main()
    {
        InitializeComponent();
    }

    private void buttonCalculateScore_Click(object sender, EventArgs e)
    {
        DetermineLevelOfProgrammer();
    }

    private void DetermineLevelOfProgrammer()
    {
        if ((baseScore >= 0) || (baseScore <= 14))
        {
            labelYourScore.Text += " " + baseScore.ToString();
            labelDescription.Text = "You are a beginning programmer, probably in your first year of computer \n"+
                                    "science in school or teaching yourself your first programming language. ";
        }

        // Do the other checks here!

    }

    // If checkbox is checked then increment base score,
    // otherwise decrement base score.
    private void checkBoxVariant_CheckedChanged(object sender, EventArgs e)
    {
        if (checkBoxVariant.Checked)
            baseScore++;
        else
            baseScore--;
    }
}

colithium.. 6

我不确定checkBoxVariant是什么,但......

我认为问题是checkBoxVariant只是32个CheckBox中的一个.我假设您将所有32个CheckChanged事件连接到checkBoxVariant_CheckedChanged方法.

应该是什么样的:

// If checkbox is checked then increment base score,
// otherwise decrement base score.
private void checkBoxVariant_CheckedChanged(object sender, EventArgs e)
{
   if (((CheckBox)sender).Checked)
      baseScore++;
   else
      baseScore--;
}

sender是一个Object,指向导致事件被引发的实际Object.因为任何东西都可以引发事件,所以它只是一个必须强制转换为CheckBox的Object.



1> colithium..:

我不确定checkBoxVariant是什么,但......

我认为问题是checkBoxVariant只是32个CheckBox中的一个.我假设您将所有32个CheckChanged事件连接到checkBoxVariant_CheckedChanged方法.

应该是什么样的:

// If checkbox is checked then increment base score,
// otherwise decrement base score.
private void checkBoxVariant_CheckedChanged(object sender, EventArgs e)
{
   if (((CheckBox)sender).Checked)
      baseScore++;
   else
      baseScore--;
}

sender是一个Object,指向导致事件被引发的实际Object.因为任何东西都可以引发事件,所以它只是一个必须强制转换为CheckBox的Object.



2> Aligma..:

if((baseScore> = 0)||(baseScore <= 14))

小心 - 这总是评估为真.您可能打算使用&&.

推荐阅读
凹凸曼00威威_694
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有