【问题标题】:Continuous update feature/event持续更新功能/事件
【发布时间】:2014-06-10 10:23:03
【问题描述】:

vb.net 中的 Visual Studio 2012 的 C# 中是否有某种更新功能? (以便它会不断检查是否满足 if 语句)

【问题讨论】:

  • 你能详细说明你在说什么吗?您是在谈论 Watch 窗口吗?
  • 我不知道那是什么,但我说我有一个标签,每次您单击该标签时,它都会为自己添加一个标签。假设一旦标签达到 1000,我希望有一条消息说“1000”。我知道我需要类似“If Label1 = ("1000") then Msgbox("1000")" 但我将在哪里插入此代码使其不断检查标签的状态。
  • 嗯,您谈到了像 C# 中的更新功能。所以我的问题是你在说什么 C# 功能?此外,如果您创建一个更改标签文本的事件处理程序,您可以将检查放入该事件处理程序本身。
  • 我的意思是每帧运行代码的更新函数

标签: vb.net visual-studio-2010 continuous


【解决方案1】:

试试这样的:

Dim iClicks As Integer = 0

Private Sub Label1_Click(sender As Object, e As EventArgs) Handles Label1.Click
    iClicks += 1
    Label1.Text = iClicks.ToString()

    If iClicks = 1000 Then
        MessageBox.Show("1000 reached!")
    End If
End Sub

最好有一个整数计数器,而不是每次检查字符串值并执行转换。如您所见,每次点击标签时,代码都会检查点击计数器。


如果您想定期检查该值,请添加一个 Timer 并在其事件中执行检查:

Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
    If iClicks = 1000 Then
        MessageBox.Show("1000 reached!")
    End If
End Sub

但请考虑这样做的必要性,因为可能没有必要,并且与其他方式相比会降低性能。

【讨论】:

    【解决方案2】:

    这可能有更好的方法,但是当我需要一个恒定的“更新”功能时,我所做的就是使用一个计时器,然后处理滴答声。

    实现它的最简单方法是转到表单设计器,在工具箱中的组件下,将计时器拖到表单上。双击它为其 Tick 事件添加句柄。

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Timer1.Start()
    End Sub
    
    Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
        If WhateverYoureLookingFor = True
            'Do stuff
        End If
    End Sub
    

    这显然是 VB,但很容易转换为 C#。

    【讨论】:

      猜你喜欢
      • 2018-06-02
      • 1970-01-01
      • 2021-12-01
      • 2022-11-26
      • 1970-01-01
      • 2012-01-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多