0

私のコードは次のように書かれています:

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 つのキャラクターの選択肢が表示されません。

4

2 に答える 2

0

ここのラジオボタンは一緒にチェック/オフできるようです。if条件ごとに、の代わりに個別のステートメントを使用する必要があると思いますelse if

于 2012-12-18T16:58:37.110 に答える
-1

Invalidateプロパティを変更した後にフォームを再描画するには、フォームを作成する必要があります。メソッドが同じ形式であると仮定すると、メソッドの最後でradioSelectButton_Click呼び出すthis.Invalidate()と、強制的に再描画されます。

于 2012-12-18T16:39:41.033 に答える