2016-05-20 5 views
0

Ich bin neu in C# und ich versuche, die Timer-Funktion zu verstehen. Ich machte ein Etikett, ein Textfeld und eine Schaltfläche auch einen Timer natürlich hinzugefügt.Warum gibt mein int-Wert einen Fehler, wenn ich ihn ändere?

Ich habe eine Int auf 1000 = 1 Sekunde eingestellt.

Ich würde gerne in der Lage sein, einen Wert in das Textfeld, d. H. 5 und dann der Timer verwendet, dass als Intervall zwischen jedem Tick.

Aus irgendeinem Grund seine sagen string „kann nicht implizit Typ umwandeln‚int‘

Und ich habe keine Ahnung, wie man einen String in einen int zu konvertieren ..

Irgendwelche Beispiele? Würde mir helfen, so ! viel

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

Mögliche Duplikat [? Wie kann ich String in Int konvertieren] (http://stackoverflow.com/questions/ 1019793/how-can-ich-konvertiere-string-zu-int) –

Antwort

5
interval = textBox1.Text; 

Intervall eine ganze Zahl und textBox1.Text ist ein String Sie haben wie den Wert zu analysieren.

interval = int.Parse(textBox1.Text) 

oder besser int.TryParse verwenden!

auch können Sie dies hier finden: String to Integer

0

Der Fehler ist selbsterklärend. Sie versuchen, einen string einem int zuzuweisen. Insbesondere auf dieser Linie:

interval = textBox1.Text; 

Sie benötigen die Int32.Parse() Methode verwenden, um die string Daten zu konvertieren:

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

Dass gesagt wird, Sie sind nicht wirklich für alles, was Ihr interval Variable. Sie müssen die Interval Eigenschaft des Timer zuweisen, bevor der Timer Start:

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

interval ist vom Typ int. Die Eigenschaft Text auf der TextBox Kontrolle ist eine string.

Sie müssen den Wert in eine int konvertieren/zu analysieren, es zu benutzen zB:

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