【问题标题】:Need While Loop to pause to allow user to press a button in c#需要 While 循环暂停以允许用户按下 c# 中的按钮
【发布时间】:2013-06-19 20:58:09
【问题描述】:

我需要帮助来阻止这个循环不断循环,我需要它让用户有时间以它打开的新形式选择一些东西,但目前它只是打开它们的全部负载并且不会停止。

while (Convert.ToInt32(PlayerHP[PlayerNo]) > 0 && Convert.ToInt32(PlayerHP[PlayerNo+1]) > 0){
    ChooseAttack();
    PlayerHP[PlayerNo+1] = (Convert.ToInt32(PlayerHP[PlayerNo+1]) - Damage()).ToString();
    lblHPP1.Text = PlayerHP[0];
    lblHPP2.Text = PlayerHP[1];
    PlayerNo = ((PlayerNo+1)%2);
    Application.DoEvents();
}

我一直在尝试使用“Application.DoEvents()”行,但无论我把它放在哪里,它都没有做任何事情。

【问题讨论】:

  • 为什么不使用事件驱动的方法?

标签: c# loops while-loop


【解决方案1】:

我在任何地方都没有看到表单,但希望在ChooseAttack(); 调用中的某个地方有一些看起来像这样的代码:

frmChoose.Show();

你需要做的就是把它改成这样:

frmChoose.ShowDialog();

【讨论】:

    【解决方案2】:

    我会将循环推送到计时器线程上,这样您就可以从外部控制“循环”。循环运行的速度将是计时器的超时时间。

    为了更清楚起见,您将不再有“while”语句,而是在计时器的回调方法顶部使用 if 来检查您的条件。它的实际循环部分将由计时器一遍又一遍地执行。

    根据您选择的计时器,当您单击表单上的按钮时,您只会说 Timer.Enabled = false;或类似的东西。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-06-01
      • 1970-01-01
      • 2022-01-25
      • 2015-07-19
      • 2021-05-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多