2009-05-20 117 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;