2016-05-20 3 views
0

Я новичок в C#, и я пытаюсь понять функцию таймера. Я сделал ярлык, текстовое поле и кнопку также добавил таймер.Почему моя ценность int дает мне ошибку при ее изменении?

У меня есть int до 1000 = 1 секунда.

Я хотел был бы иметь возможность ввести значение в текстовое поле i.e 5 , а затем таймер использует его как интервал между каждым тиком.

По какой-то причине его, говоря «Не удается неявно преобразовать тип„строка в целое“

И я понятия не имею о том, как преобразовать строку в межд ..

Есть примеры? Поможет мне так ! много

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

Возможный дубликат [Как я могу преобразовать строку в Int] (http://stackoverflow.com/questions/ 1019793/как-могу-я конвертирование-струнные к междам) –

ответ

5
interval = textBox1.Text; 

интервал является целым числом и TextBox1.Text является строкой Вы должны разобрать значение, как:.

interval = int.Parse(textBox1.Text) 

или лучше использовать int.TryParse!

также вы можете найти это здесь: String to Integer

0

Ошибка за себя. Вы пытаетесь присвоить stringint. В частности, на этой линии:

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(); 
0

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... 
}