2012-02-14 46 views
1

我有一個標籤,我試圖左右移動。我得到它與一段時間(真)循環工作,但決定嘗試使用一個計時器。如何使用計時器使文本從一側移動到另一側?

private int x = 0; 
    private int y = 11; 
    private void timer1_Tick(object sender, EventArgs e) 
    { 
     if (x <= 11) 
     { 
      x++; 
      string ping = new string(' ', x) + "ping"; 
      label2.Text = ping; 
     } 
     else if (y >= 0) 
     { 
      y--; 
      string pong = new string(' ', y) + "pong"; // this is where the exceptions given 
      label2.Text = pong; 
     } 

是據我得到它的工作原理八九不離十,但它確實後,一旦拋出異常

「計數」必須爲非負數。

我不知道如何解決這個問題,任何幫助都會很棒。

回答

1

y達到0時,它仍然會遞減一次。更改爲y > 0,你應該沒問題。

1

string()構造函數在傳遞負值作爲第二個參數時拋出。

MSDN:String Constructor (Char, Int32)

ArgumentOutOfRangeException - 計數小於零。

所以只是改變

if (y >= 0) 

if (y > 0) 
0
private int x = 0; 
private int y = 100; 
private void timer1_Tick(object sender, EventArgs e) 
{ 
    if (x <= 100) 
    { 
     x++; 
     string ping = new string(' ', x) + "COURT DOCUMENT MANAGEMENT SYSTEM"; 
     label1.Text = ping; 
    } 
    else if (y > 0) 
    { 
     y--; 
     string pong = new string(' ', y) + "MY ARCHIVE MY LIFELINE!!!!"; // this is where the exceptions given 
     label2.Text = pong; 
    } 
} 
0
if (x <= 11) 
{ 
    x++; 
    string ping = new string(' ', x) + "ping"; 
    label2.Text = ping; 
    if (x == 11) 
    { 
     y = 11; 
    } 
} 
else if (y >= 0) 
{ 
    y--; 
    string pong = new string(' ', y) + "pong"; // this is where the exceptions given 
    label2.Text = pong; 
    if (y == 0) 
    { 
     x = 0; 
    } 
} 
+1

你需要提供你的代碼的解釋:) – 2017-02-13 09:27:42

相關問題