我在哪里可以显示这些可见的更改

时间:2012-12-18 16:36:55

标签: c#

我的代码是这样编写的:

private void radioSelectButton_Click(object sender, EventArgs e)
{
    if (pteriRadio.Checked) // Selecting avatar to be displayed from here on out.
    //This avatar will also be displayed on the game board.
    {
        pteriBox1.Visible = true;
        xweetokBox1.Visible = false;
        ixiBox1.Visible = false;
        label1.Text = ("Pteri Inventory");
        player1avatar = "pteri";
    }
    else if (xweetokRadio.Checked)
    {
        xweetokBox1.Visible = true;
        pteriBox1.Visible = false;
        ixiBox1.Visible = false;
        label1.Text = ("Xweetok Inventory");
        player1avatar = "xweetok";
    }
    else if (ixiRadio.Checked)
    {
        ixiBox1.Visible = true;
        pteriBox1.Visible = false;
        xweetokBox1.Visible = false;
        label1.Text = ("Ixi Inventory");
        player1avatar = "ixi";
    }
    characterSelectBox.Visible = false;
    radioSelectButton.Visible = false;
    characterSelectBox2.Visible = true;
    radioSelectButton2.Visible = true;
}

似乎可见性更改应该显示在我这样的情况下,按钮内的更改点击但在if语句之外(用户选择的内容并不重要,一旦选择了选择需要为该用户消失。)然而,可见性变化不会执行。我在这里错过了什么?

如果我按照前一个人的建议嵌套if语句,这就是我所拥有的:

    private void radioSelectButton_Click(object sender, EventArgs e)
    {
        if (pteriRadio.Checked) // Selecting avatar to be displayed from here on out.
        //This avatar will also be displayed on the game board.
        {
            pteriBox1.Visible = true;
            xweetokBox1.Visible = false;
            ixiBox1.Visible = false;
            label1.Text = ("Pteri Inventory");
            player1avatar = "pteri";
            if (xweetokRadio.Checked)
            {
                xweetokBox1.Visible = true;
                pteriBox1.Visible = false;
                ixiBox1.Visible = false;
                label1.Text = ("Xweetok Inventory");
                player1avatar = "xweetok";

                if (ixiRadio.Checked)
                {
                    ixiBox1.Visible = true;
                    pteriBox1.Visible = false;
                    xweetokBox1.Visible = false;
                    label1.Text = ("Ixi Inventory");
                    player1avatar = "ixi";
                }
                characterSelectBox.Visible = false;
                radioSelectButton.Visible = false;
                characterSelectBox2.Visible = true;
                radioSelectButton2.Visible = true;
            }
        }
    }

现在,不仅可以查看可见项目,还有两个角色选择无法显示。

2 个答案:

答案 0 :(得分:0)

看起来这里的单选按钮可以一起检查/取消选中。我认为您应该为每个条件使用单独的if语句,而不是else if

答案 1 :(得分:-1)

更改属性后,您需要Invalidate表单重新绘制。假设radioSelectButton_Click方法的形式相同,则在方法结束时调用this.Invalidate()会强制重绘。