我有一个Windows窗体应用程序,以及一个名为Game的类。
假设Game类有一个属性计数器,我会做一些计算并更改该类中的计数器。所以我想在计数器更改时将文本返回到表单,然后将其分配给表单上的标签。
我可以使用返回类型字符串的事件处理程序吗?因为我必须听它并在发生事情时返回一些东西。
提前致谢。
答案 0 :(得分: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));
}
}
}
希望我没有犯任何语法错误,因为我用头编码了:)但是你明白了。 您可以使用偶数注册表单并像对待任何控件一样收听。
答案 1 :(得分:0)
您可以使用计时器并将游戏轮询为其当前状态,并使用新值更新您的显示。