0

したがって、私のクラスのこのコードには少し問題があります。私はそれがかなり初歩的なように思えることを知っていますが、私の人生では、なぜそれを機能させることができないのかわかりません.

基本的に、6 つのラジオ ボタンがあり、どれが選択されているかに応じて、値を int 変数に割り当てたいと考えています。その値を他の何かをする別の winForm に返したいです。

しかし、何らかの理由で常に 0 を返します。

いくつかの助けをいただければ幸いです。

前もって感謝します..

    int x = 0;

    public int selectionDie1()
    {
        if (die1_1.Checked)
            x = 1;
        if (die1_2.Checked)
            x = 2;
        if (die1_3.Checked)
            x = 3;
        if (die1_4.Checked)
            x = 4;
        if (die1_5.Checked)
            x = 5;
        if (die1_6.Checked)
            x = 6;
        return x;
    }

また、これを戻り値のない void に変更し、ボタンクリックで x の値を表示するラベルを配置しても、0 を返すことを追加したいと思います。

ラジオボタンを1つだけ使用してみましたが、それが機能するかどうかを確認しましたが、何もありませんでした。

x = 1000 に設定すると; 正常に動作することを返すので、ラジオボタンに関係しています

ありがとうございました

4

1 に答える 1

0

私がこれを正しく理解していればx、他の形式で変数を使用しようとしています。関数の直接の結果を使用する必要がありselectionDie1ます。

public int selectionDie1()
{
    if (die1_1.Checked)
        return 1;
    else if (die1_2.Checked)
        return 2;
    ...

    else
        throw new exception("there was no item checked");
}

この方法では、追跡する変数がなく、外部の場所からアクセスすることもできません。

もう1つの問題は、フォームを作成してから、選択したアイテムをすぐにチェックしていることです(コメントが正しい場合)。最初にフォームを作成して表示し、ユーザーにオプションを選択する時間を与えてから、この関数呼び出しを実行する必要があります (ユーザーの選択、フォームのクローズ、ボタンの押下などで発生する可能性があります)。

于 2013-03-01T19:15:04.927 に答える