为什么我的int值在更改时会给我一个错误?

时间:2016-05-20 15:25:58

标签: c# timer intervals

我是C#的新手,我正在尝试了解计时器功能.. 我制作了一个标签,一个文本框和一个按钮,还添加了一个计时器。

我将int设置为1000 = 1秒。

我希望能够在文本框中输入一个值,即5 然后计时器将其用作每个刻度之间的间隔。

由于某种原因,它说“不能隐式转换类型”字符串为int“

我不知道如何将字符串转换为int ..

任何例子?会帮到我这么多!

namespace Clicker
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        int count = 0;
        int interval = 1000;


        private void Form1_Load(object sender, EventArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {
            timer1.Start();
            interval = textBox1.Text;
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            count++;
            label1.Text = count.ToString();

        }
    }
}

3 个答案:

答案 0 :(得分:5)

 interval = textBox1.Text;

interval是一个整数,textBox1.Text是一个字符串。 你必须解析像:

这样的值
interval = int.Parse(textBox1.Text)

或者更好地使用int.TryParse!

你也可以在这里找到: String to Integer

答案 1 :(得分:0)

错误是不言自明的。您正尝试将string分配给int。具体来说,在这一行:

interval = textBox1.Text;

您需要使用Int32.Parse()方法转换string数据:

interval = Int32.Parse(textBox1.Text) * 1000;

话虽如此,您实际上并没有使用interval变量。您需要在启动计时器之前分配计时器的Interval属性:

interval = Int32.Parse(textBox1.Text) * 1000;
timer1.Interval = interval;
timer1.Start();

答案 2 :(得分:0)

interval is of type int. The property Text on the TextBox control is a string.

You need to convert/parse the value to an int to use it e.g:

int userInput = 0;

if(Int32.TryParse(textBox1.Text, out userInput))
{
    interval = userInput;
}
else
{
    // Input couldn't be converted to an int, throw an error etc...
}