我有一个 Windows 窗体应用程序和一个名为 Game 的类。
假设 Game 类有一个属性计数器,我在该类中进行一些计算并更改计数器。因此,每当计数器更改时,我想将文本返回到表单,然后将其分配给表单上的标签。
我可以使用返回类型字符串的事件处理程序吗?因为我必须听它并在发生任何事情时返回一些东西。
提前致谢。
是的,你可以: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 注册您的表单并像使用任何控件一样收听它。
您可以使用计时器并轮询游戏的当前状态,使用新值更新您的显示。