C#编程一定要继承Form才能使用自定义消息或事件吗

suffocater 2010-01-29 10:47:19
我想为应用程序中部分功能独立的类添加消息响应或事件响应,上网查了一下所有文章都只提到了DefWndProc和WndProc,但是我的那部分类是不需要窗体的,就是说不需要继承自Form,而按我的理解只有Form作基类时override两个函数才有意义. 有什么好的办法可以让一个类不继承自form也能响应自定义消息或函数吗?


谢谢!
...全文
124 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
h_w_king 2010-01-29
  • 打赏
  • 举报
回复
给个例子参考参考:
class MyClass //带事件的类
{
int t;
public event MyEventHandler BeforeValueChange;

public int V
{
get { return t; }
set
{
if (BeforeValueChange != null)
{
MyEventArgs e = new MyEventArgs(t, value);
BeforeValueChange(this, e);
}
t = value;
}
}


public class MyEventArgs : EventArgs
{
int oldvalue;
int newvalue;
public int OldValue
{
get { return oldvalue; }
}
public int NewValue
{
get { return newvalue; }
}
public MyEventArgs(int o, int n)
{
oldvalue = o;
newvalue = n;
}

}
public delegate void MyEventHandler(object sender, MyEventArgs e);

}



调用:

MyClass m = new MyClass();
m.BeforeValueChange += new MyClass.MyEventHandler(m_BeforeValueChange);
m.V = 9;

void m_BeforeValueChange(object sender, MyClass.MyEventArgs e)
{
MessageBox.Show(e.OldValue.ToString() + "_" + e.NewValue.ToString());
}
xray2005 2010-01-29
  • 打赏
  • 举报
回复
如果你不需要处理WINDOW的消息。那当然可以。
那么是可以自己写相应的”消息“和处理的。最简单的方式:使用委托和事件。
cicigl 2010-01-29
  • 打赏
  • 举报
回复
UPUP

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧