【问题标题】:for loop in window forms applications窗体应用程序中的 for 循环
【发布时间】:2009-05-20 08:08:59
【问题描述】:

我刚刚使用窗口窗体应用程序设计了一个简单的“For Loop”。我希望这只能点击一次,并且如果我点击按钮,它不会重复相同的信息。我怎么能那样做?谢谢 这是我的代码:

        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);
        }

【问题讨论】:

  • 建议:在 for 中声明 count 并使用 ++ 递增:for (int count = 0; count

标签: c# for-loop


【解决方案1】:
button1.Enabled = false;

【讨论】:

  • 这也是个好主意。谢谢梅尔达德;-)
【解决方案2】:

我假设您不希望将相同的项目多次添加到列表中?

代替

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

你需要类似的东西

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

【讨论】:

  • Hi Binary 这行是什么意思:if(listBox1.Items.IndexOf(newItem)
  • 好的,谢谢。我还看到,当我编写字符串 textEnd 时,它给了我一些建议,我也可以让它保持不变。有什么区别吗?如果我只是用 const string textEnd 写 string textEnd?只是遇到这个“const”我知道我不能改变它但目的是什么?
  • "const":建议您将该文字字符串放入一个常量变量中,这是将您使用的所有“幻数”放入变量中的好习惯,这样您就不会使用相同的文字在您的代码中多次赋值。然而在这种情况下,在你的阶段,你不想担心它,你有更大的鱼要炸,所以去写更多的代码! ! !
【解决方案3】:

在点击事件上,添加button1.Enabled = false

也许,在循环之后,您可能想要添加 button1.Enabled = true 以重新启用按钮。 :)

【讨论】:

  • 嗨,伊恩,我应该把 button1.Enabled=false 放在哪里?那会在我的代码的第一行吗? button1.Enabled=true 怎么样?在循环之后将在 const string textEnd 块之后?对吗?
【解决方案4】:

您可以只使用一个简单的“标志”来确定循环是否已经运行。

创建一个全局变量 例如 bool HasRun = false;

然后在执行循环之前检查标志的状态 例如,如果 HasRun == true

第一次运行循环时将 HasRun 设置为 true。

最后,您还可以在首次运行时禁用该按钮 例如 button1.Enabled = false;

【讨论】:

  • 你好,杰夫,嗯,对不起,我不明白这里的“标志”是什么意思。可能我还没学会。刚学过 C#;-)
【解决方案5】:

如果项目不是太多,您总是可以在添加内容之前清除列表框。

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

但可能最好的解决方案就是禁用按钮,就像 Ian 写的那样。

【讨论】:

  • 我应该在哪里添加这个 listBox1.Items.Clear()?
  • 作为填充列表框的方法的第一行,如您的示例所示,在“int count;”之前线。我假设您正在尝试避免列表框中出现大量重复项。
【解决方案6】:

最好的是伊恩所说的,但是您也可以通过运行以下任一命令来完全隐藏按钮

button.Hide();

或者

button.Visable = false;

【讨论】:

    猜你喜欢
    • 2021-09-23
    • 1970-01-01
    • 2021-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多