0

ユーザーがラジオボタンを使用して宛先を選択できるプログラムを作成しました。私の問題は、ユーザーが宛先として「1」を選択した場合でも、プログラムはそれを「2」として識別します。

これが私がやったことです:

public partial class Airplane_Simulation : Form
{
    private String status="";

    public Airplane_Simulation()
    {
        InitializeComponent();
        CheckedChanged();

        rbOne.CheckedChanged += (s,e) => { CheckedChanged(); };
        rbTwo.CheckedChanged += (s, e) => { CheckedChanged(); };

        //more codes here
    }

    public void CheckedChanged()
    {
        status = rbOne.Checked ? rbOne.Text : rbTwo.Text;
    }
}

ここで何が問題になっているようですか? if 条件を使用して、どれがチェックされているかを確認しましたが、それでもオプションは「2」しか取得できません。

お時間をいただきありがとうございます。

4

2 に答える 2

0

statusこれは、チェックボックスがクリックされるたびに変更したい場合に役立ちます。

 private void Form1_Load(object sender, EventArgs e)
    {
        rbOne.Click += (s, o) => { status = rbOne.Text; };
        rbTwo.Click += (s, o) => { status = rbTwo.Text; };
    }
于 2013-09-24T05:09:46.150 に答える
-1

まず、単一の等号は割り当てであり、等価性のチェックではありません。2 つの等号を使用する必要があります。

次に、rbOne.IsCheckedプロパティを使用して、コントロールがチェックされているかどうかを確認します。

rbOne.Checkedプロパティではなくイベントです。

編集:

上記はWPFで使用できます。Windowsフォームで私が何をするかは次のとおりです。

    public Form1()
    {
        InitializeComponent();



        rbOne.Click += new EventHandler(radioButton_Click);
        rbTwo.Click += new EventHandler(radioButton_Click);
    }

    public void radioButton_Click(object sender, EventArgs e)
    {
        status = rbOne.Checked ? rbOne.Text : rbTwo.Text;

}

他のラジオ ボタンを選択すると 2 回呼び出されるため、CheckedChanged イベントは使用しません。

于 2013-09-23T19:05:41.817 に答える