通过按钮打印标签

时间:2014-10-01 09:45:11

标签: c# visual-studio

我正在尝试打印出星期几,当一个数字被输入到文本框中但是当我点击按钮时它似乎根本不打印在标签上,当我运行代码时它似乎工作正常,直到我输入一个值并单击按钮,没有任何反应。

 private void button1_Click(object sender, EventArgs e)
        {
            int dayOfWeek = Convert.ToInt32(textBox1);
            String dayName = null;
            switch (dayOfWeek)
            {
                case 1:
                    dayName = "Sunday";
                    break;
                case 2:
                    dayName = "Monday";
                    break;
                case 3:
                    dayName = "Tuesday";
                    break;
                case 4:
                    dayName = "Wednesday";
                    break;
                case 5:
                    dayName = "Thursday";
                    break;
                case 6:
                    dayName = "Friday";
                    break;
                case 7:
                    dayName = "Saturday";
                    break;



                    String stndrd = null;
                    if (dayOfWeek == 1)
                    {
                        stndrd = dayName;
                        label1.Text = (stndrd);
                    }
                    else if (dayOfWeek == 2)
                    {
                        stndrd = dayName;
                        label1.Text = (stndrd);
                    }
                    else if (dayOfWeek == 3)
                    {
                        stndrd = dayName;
                        label1.Text = (stndrd);
                    }
                    else if (dayOfWeek == 4)
                    {
                        stndrd = dayName;
                        label1.Text = (stndrd);
                    }
                    else if (dayOfWeek == 5)
                    {
                        stndrd = dayName;
                        label1.Text = (stndrd);
                    }
                    else if (dayOfWeek == 6)
                    {
                        stndrd = dayName;
                        label1.Text = (stndrd);
                    }
                    else if (dayOfWeek == 7)
                    {
                        stndrd = dayName;
                        label1.Text = (stndrd);
                    }
                    else if (dayOfWeek == null)
                    {
                        stndrd = "Mad Day!!!";
                        label1.Text = (stndrd);

2 个答案:

答案 0 :(得分:2)

这一行:

int dayOfWeek = Convert.ToInt32(textBox1);

尝试将 TextBox 转换为整数,而不是在其中键入的值(textBox1.Text)。您应该将其更改为:

int dayOfWeek;
if (!int.TryParse(textBox1.Text, out dayOfWeek))
{
    // you can remove the MessageBox if you're not interested in feedback 
    MessageBox.Show("Value entered is not a valid day number!");
    return;
}

String dayName = null;
switch (dayOfWeek)
{
    //...

使用int.TryParse()可以防止异常并且能够处理非法值"。

答案 1 :(得分:0)

除了@ C.Evenhuis的答案之外,设置标签的代码部分位于“案例7”开关的案例陈述的内部,但是在休息之后。这段代码将无法与您当前的代码一起使用,因此标签本身不会被设置为任何内容,因为代码永远不会被执行。

您需要完成switch语句,然后执行标签设置。 但是所有代码也是多余的,因为你可以用更简单的方式完成所有这些(延伸到C.Evenhuis的推荐)

int dayOfWeek;
if (!int.TryParse(textBox1.Text, out dayOfWeek))
{
  // you can remove the MessageBox if you're not interested in feedback 
  MessageBox.Show("Value entered is not a valid day number!");
  return;
}

String dayName = null;
switch (dayOfWeek)
{
  case 1:
    dayName = "Sunday";
    break;
  case 2:
    dayName = "Monday";
    break;
  case 3:
    dayName = "Tuesday";
    break;
  case 4:
    dayName = "Wednesday";
    break;
  case 5:
    dayName = "Thursday";
    break;
  case 6:
    dayName = "Friday";
    break;
  case 7:
    dayName = "Saturday";
    break;
  default:
    dayName = "Mad Day!!!";
    break;
  }
  // Set the label's text to what was defined above
  label1.Text = dayName;
}
相关问题