0

我有一个 Windows 窗体应用程序和一个名为 Game 的类。

假设 Game 类有一个属性计数器,我在该类中进行一些计算并更改计数器。因此,每当计数器更改时,我想将文本返回到表单,然后将其分配给表单上的标签。

我可以使用返回类型字符串的事件处理程序吗?因为我必须听它并在发生任何事情时返回一些东西。

提前致谢。

4

2 回答 2

1

是的,你可以:p

这样做的正确方法如下(INotifyPropertyChanged 将简单地告诉您哪些属性已更改并且不返回实际值,但这也是一种好方法):

class CountArgs:EventArgs
{
   public int Count{get;set;} 

    public CountArgs(int c) { 
        Count = c; 
    }
}

class Game
{

   public event EventHandler<CountArgs> CountChanged; // it is possible to define your own delegate here.
   int count;
   public int Count
   {
      get { return count;}
      set { 
            if (count != value) // Only raise the event if the value changes
            {
                 count = value;
                 RaiseCountChangedEvent(value);
            }
   }  
   void RaiseCountChangedEvent(int c)
   {
      if (CountChanged != null) // Check that at least one object is listening to the event
      {
          CountChanged(this,new CountArgs(c));
      }
   }
}

希望我在编写代码时没有犯任何语法错误:)但是您明白了。您可以使用 even 注册您的表单并像使用任何控件一样收听它。

于 2012-06-16T00:04:13.947 回答
0

您可以使用计时器并轮询游戏的当前状态,使用新值更新您的显示。

于 2012-06-16T00:03:22.280 回答