繁体   English   中英

有没有办法在 C# 中递归按下按钮(再次按下自身)? [复制]

Is there a way to make a button press recursive in C# (press itself again)? [duplicate]

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我想让一个按钮运行一些代码,然后在 Windows Forms 中再次按下它自己。

当我调用按钮本身时,我收到错误:

 System.StackOverflowException
       HResult=0x800703E9
       Source=<Cannot evaluate the exception source>
       StackTrace:
     <Cannot evaluate the exception stack trace>

我想制作一个资源监控程序来熟悉C# 现在我被困在字符串处理和显示不断变化的字符串上。 我使用随机生成的数字作为占位符,我想永久显示和更改它,模仿真实的数据拉取。

我的代码:

public void Start_Click(object sender, EventArgs e){
      var usage =new CpuUsage(); //placeholder class for getting the CPU use data
      usage.setCPU(); //gets a random number
      this.CPU.Text = usage.cpuUsage; //show the usage data on a textbox
      Start_Click(null, EventArgs.Empty); //call this button again here
}

我想要得到的东西看起来像:

  1. 获取数据
  2. 使用文本框显示数据
  3. 重做这个
1 个回复

我认为您正在寻找的是Timer控件。 您可以将其设置为以某个时间间隔运行,并定义以该时间间隔运行的代码。 如果您只想在按下按钮时启动它,您还可以控制定时器的启动和停止。

例如,在表单上放置一个Timer控件并尝试以下代码:

private void Form1_Load(object sender, EventArgs e)
{
    // Set the interval to how often you want it to execute
    timer1.Interval = (int)TimeSpan.FromSeconds(1).TotalMilliseconds;
    // Set a method to run on every interval
    timer1.Tick += Timer1_Tick;
}

public void Start_Click(object sender, EventArgs e)
{
    // start or stop the timer
    timer1.Enabled = !timer1.Enabled;

    // Above we are just flipping the 'Enabled' property, but
    // you could also call timer1.Start() (which is the same as 
    // setting 'Enabled = true') or timer1.Stop() (which is
    // the same as setting 'Enabled = false')
}

// Put code in this method that should execute when the timer interval is reached
private void Timer1_Tick(object sender, EventArgs e)
{
    var usage = new CpuUsage(); //placeholder class for getting the CPU use data
    usage.setCPU(); //gets a random number
    this.CPU.Text = usage.cpuUsage; //show the usage data on a textbox
}
1 有没有办法阻止或断言C#中的意外递归

我正在使用大型且复杂的事件驱动的代码体,并且有大量的机会意外地创建递归条件。 有时,递归条件是暂时的,应用程序会自行追赶,但即使那样通常也会造成不必要的延迟。 其他时候,它会产生一个堆栈溢出,当它发生在客户端站点时,通常很难调试。 我想有一种方法可以将允许递归的代码部分列入黑名单或 ...

3 有没有办法通过在 c# 中单击按钮来传递值

我有一个使用文本文件作为主要数据输入的简单程序,我必须创建一个 windows forms 应用程序,该应用程序将允许用户使用该数据进行操作。 我创建了一些按钮,可以让我们删除、编辑、添加和显示 .txt 文件中的数据。 我已经知道如何通过单击按钮从该表中写出数据,但我似乎无法弄清楚如何从用户输入中 ...

4 有没有办法在C#中组合“ is”和“ as” [重复]

可能重复: C#-在if语句中赋值 我发现自己在接下来的多次中 有没有办法替换“ if”部分并简化设置程序: 编辑:我之前应该提到过这一点-我想完全删除“如果”。 仅当e.row.FindControl是文字时,“某些运算符”才应在内部执行此操作并设置“ .t ...

2011-09-19 21:58:42 6 175   c#
5 有没有办法避免在C#中编写重复的代码?

我想在表格中插入更多的球。 但是,为了让它反弹,我必须为不同的球反复编码相同的算法。 我是否知道如果不一遍又一遍地写它,我有什么办法可以做到的? 我的代码如下。 谢谢。 ...

2013-05-22 04:07:07 2 288   c#/ arrays
6 有没有办法在C#中使用泛型创建声明?

我一直在c#中实现一种观察者模式,如下所示: 要使用此类,我们需要以下内容: 我会对人们对是否有改进/更好的方法来实现/公开这种模式的评论感兴趣,但是我的主要问题是是否有一种方法可以用通用的方式来完成所有这些声明,等同于宏我可能是用C ++创建的。 声明这是完全通用的,有很 ...

8 C#:有没有办法在显示后停止再次生成随机数

我需要一种方法来存储括号中为真/假或 if 语句生成的随机数,但不能,因为它在我输入答案后不断重新生成新数字。 此外,如果它生成了 44 个随机数,而我回答了 48 个随机数,我该如何调用随机数来显示它是否正确? 只是一个简单的练习来帮助自己进行 C# 编码。 感谢您提供的任何答案。 //编码根 ...

2020-02-19 10:08:52 1 77   c#
9 C#有没有办法停止foreach循环,直到事件再次发生?

我目前正在尝试编程一个foreach循环,并将其编码到我的按钮单击事件中。 我的问题是循环只是直接到达数组的末尾,我想要做的是停在数组的每个字符串上,直到再次单击按钮,然后它将移至下一个字符串。 我应该休息吗? 还是继续;? ...

10 有没有办法在 C# 和 SDKV4 中创建的 MS Chat BOT 中使用 PromptOptions 突出显示通过选择显示的按钮选项?

我正在使用 C# 中的 SDKV4 使用 Microsoft Bot 框架创建一个 chatBot。 BOT 有多个瀑布式对话。 在这个对话框类中,使用提示选项以按钮的形式显示了几个选择选项。我想知道是否或是否有办法突出显示以不同颜色显示的一个(仅一个)按钮。 如果我们观察,通常选择按钮以白色 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM