-9
if (radioButton1.Checked)
{
    int a;
    string s = comboBox1.SelectedItem.ToString();

    if (s == "30 Days")
    {
        a = 30;
    }                
    if (s == "60 days")
    {
        a = 60;
    }
    else
    {
        MessageBox.Show(comboBox1.SelectedItem.ToString());
    }
    view_n_cstmr v = new view_n_cstmr(a);
    v.MdiParent = this.MdiParent;
    v.Show();
}

'a'(int) の値はこのコードでは影響を受けませんが、コンボ ボックスの項目が見つかりました。助けてください

4

5 に答える 5

3

あなたのコードの最大の問題 (おそらくあなたを混乱させるでしょう) は、最初のifステートメントが次のステートメントに「接続」されていないことif...elseです。次のように変更してみてください。

if {...}
else if {...}
else {...}
于 2012-08-20T11:21:32.250 に答える
1

文字列感覚比較の問題があると思います。

文字列の無意味な比較のために次のコードを試してください -

if (radioButton1.Checked)
{
    int a; string s = comboBox1.SelectedItem.ToString();

    if (string.Compare(s, "30 days", true) == 0) { a = 30; } 
    else if (string.Compare(s, "60 days", true) == 0) { a = 60; } 
    else 
    { 
        MessageBox.Show(comboBox1.SelectedItem.ToString()); 
    }
}
于 2012-08-20T11:23:20.863 に答える
0

そうあるべきだと思う

if (radioButton1.Checked)
{
    int a = 0;
    string s = comboBox1.SelectedItem.ToString();

    if (s == "30 Days")
        a = 30;            
    else if (s == "60 days")
        a = 60;
    else
        MessageBox.Show(comboBox1.SelectedItem.ToString());

    view_n_cstmr v = new view_n_cstmr(a);
    v.MdiParent = this.MdiParent;
    v.Show();
}
于 2012-08-20T11:15:14.137 に答える
0

多くの人が指摘しているように、使用している if else ステートメントは接続されていません。そしてまた。あなたのコンボボックスには、それ以上のアイテムが"30 Days"あり"60 days"ますか? あなたのelseでは、整数aを設定していません。

これにより、コンパイル エラーが発生します: " Use of unassigned local variable 'a'"

コード内のこの行。

view_n_cstmr v = new view_n_cstmr(a);

おそらく、変数 'a' にデフォルト値を割り当てるか、else ステートメントで戻りますか?

于 2012-08-20T11:32:09.767 に答える
0
switch (s.ToLower())
{
    case "30 days":
       a = 30;
       break;
    case "60 days":
       a = 60;
       break;
    default:           
       MessageBox.Show(comboBox1.SelectedItem.ToString());
       break;
}
于 2012-08-20T11:16:55.717 に答える