2009-05-20 116 views
0

我剛剛使用窗體窗體應用程序設計了一個簡單的「For循環」。我希望這將只能點擊一次&它不會重複相同的信息,如果我點擊按鈕。我怎麼能這樣做?感謝 這裏是我的代碼:for循環窗口窗體應用程序

 int count; 

     for (count = 0; count < 5; count = count + 1) 
     { 
      listBox1.Items.Add("This is count: " + count); 
     } 
     const string textEnd = "Done!!!"; 
     { 
      listBox1.Items.Add(textEnd); 
     } 

====附加信息=== 我做了現在這個樣子。這隻會點擊一次,但按鈕仍然可用。我認爲這是確定:

 int count; 

     for (count = 0; count < 5; count++) 
     { 
      string newItem = "This is count: " + count; 
      if (listBox1.Items.IndexOf(newItem) < 0) 
      { 
       listBox1.Items.Add(newItem); 
      } 
     } 

     const string textEnd = "Done!!!"; 
     if (listBox1.Items.IndexOf(textEnd) <0) 
     { 
      listBox1.Items.Add(textEnd); 
     } 
+0

的建議:申報數爲和使用++來增量:for(int count = 0; count <5; count ++)... – 2009-05-20 08:28:20

回答

1

我假設你不想同一個項目多次添加到列表中?

而不是

{ 
    listBox1.Items.Add("This is count: " + count); 
} 

你需要像

{ 
    string newItem = "This is count: " + count; 
    if(listBox1.Items.IndexOf(newItem) < 0) 
    { 
     listBox1.Items.Add(newItem); 
    } 
} 
+0

嗨Binary這行代表什麼意思: if(listBox1.Items.IndexOf(newItem)<0)? – tintincutes 2009-05-20 08:25:51

+0

這是檢查項目(字符串)是否已經在列表中... – Xn0vv3r 2009-05-20 08:35:32

+0

好的謝謝。我也看到,當我寫字符串textEnd時,它給了我一些建議,我也可以使它保持不變。有沒有什麼區別?如果我只是寫字符串textEnd與常量字符串textEnd? 只是遇到這個「常量」我知道我不能改變它,但目的是什麼? – tintincutes 2009-05-20 08:39:19

4
button1.Enabled = false; 
+0

這也是一個好主意。謝謝Mehrdad ;-) – tintincutes 2009-05-20 08:39:49

0

在點擊事件中,添加button1.Enabled =假

也許,在循環之後,你可能要添加button1.Enabled = TRUE重新啓用按鈕。 :)

+0

嗨伊恩我應該把button1.Enabled = false?那是我的代碼的第一行? 怎麼樣button1.Enabled = true?之後的循環會在const字符串textEnd塊之後?是對的嗎? – tintincutes 2009-05-20 08:24:43

0

你可以只用一個簡單的「標誌」來確定迴路是否已經運行。

創建一個全局變量 例如bool HasRun = false;

然後檢查標誌的狀態,你執行循環 如之前如果HasRun == TRUE

設置HasRun爲真當你第一次運行循環。

最後你也可以在第一次運行時將按鈕打亂 例如button1.Enabled = false;

0

如果它不是太多的項目,你可以在添加東西之前清除列表框。

listbox1.Items.Clear(); 
...your adding code... 

但最好的解決辦法就是禁用按鈕,就像伊恩寫的。

0

最好的一個就是伊恩說不過你也可以完全隱藏按鈕,通過運行的是如下因素的命令

button.Hide(); 

或者

button.Visable = false;