-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) 的值不受此代码影响,但在 swe 中发现该组合框项目请帮帮我

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

I think it should be

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
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 回答
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 回答