Почему значение int дает мне ошибку при его изменении?
Я новичок в 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 ответа
interval = textBox1.Text;
интервал - это целое число, а textBox1.Text - это строка. Вы должны проанализировать значение как:
interval = int.Parse(textBox1.Text)
или лучше используйте int.TryParse!
также вы можете найти это здесь: String to Integer
Ошибка не требует пояснений. Вы пытаетесь назначить 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();
interval
имеет тип int
, Недвижимость Text
на TextBox
контроль является string
,
Вам нужно преобразовать / разобрать значение в int
использовать его, например:
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...
}