请教一个简单自定 窗体事件 例子 谢谢
请教 2 个问题
第一:请高手给出一个 窗体自定义的时间 例子 代码
第一:下面代码是我自己定义的窗体事件,显然问题多多 麻烦高手帮忙解释一下
namespace WindowsApplication9
{
public delegate void evtCalculatingArea();
public partial class Form1 : Form
{
public event evtCalculatingArea CalculatingArea;
public override string Text
{
get
{
return base.Text;
}
set
{
base.Text = value;
}
}
public Form1()
{
InitializeComponent();
}
public void s(object sender,EventArgs e)
{
MessageBox.Show("调用事件");
}
private void Form1_Load(object sender, EventArgs e)
{
this.CalculatingArea += new evtCalculatingArea(Form1_CalculatingArea);
}
void Form1_CalculatingArea()
{
throw new Exception("The method or operation is not implemented.");
}
}
}
问题点数:40、回复次数:7Top
1 楼leike1982()回复于 2006-06-03 23:01:30 得分 0
upTop
2 楼ProjectDD()回复于 2006-06-04 00:29:06 得分 0
这个事件声明和实现都在一个类体中..而且没有写如何实现 事件的On方法还没有写.Top
3 楼zhzuo(秋枫)回复于 2006-06-04 22:03:59 得分 0
参考的例子,
http://blog.csdn.net/zhzuo/archive/2004/11/30/199599.aspxTop
4 楼leike1982()回复于 2006-06-05 13:01:45 得分 0
upTop
5 楼kssys()回复于 2006-06-05 13:12:43 得分 0
第二个问题:
namespace WindowsApplication9
{
public delegate void evtCalculatingArea();
public partial class Form1 : Form
{
public event evtCalculatingArea CalculatingArea;
->
namespace WindowsApplication9
{
public partial class Form1 : Form
{
public delegate void evtCalculatingArea();
public event evtCalculatingArea CalculatingArea;Top
6 楼xvting(xvting)回复于 2006-06-05 13:24:02 得分 0
一般的使用模式
在调用类(MainFrom)中给被调用类(Form1)的事件挂上处理代码.
事件相当于一个占位符,在需要的时候加上特殊处理代码。
namespace WindowsApplication9
{
public delegate void evtCalculatingArea();
public partial class Form1 : Form
{
public event evtCalculatingArea CalculatingArea;
public override string Text
{
get
{
return base.Text;
}
set
{
base.Text = value;
}
}
public Form1()
{
InitializeComponent();
}
public void s(object sender,EventArgs e)
{
MessageBox.Show("调用事件");
}
private void Form1_Load(object sender, EventArgs e)
{
this.CalculatingArea += new evtCalculatingArea(Form1_CalculatingArea);
}
void Form1_CalculatingArea()
{
//处理代码
//。。。。。。。。。
//。。。。。。。。。。
//事件处理代码
if (CalculatingArea != null)
{
CalculatingArea();
}
}
}
public class MainFrom : Form
{
public MainFrom()
{
//初始化
}
private void MainFrom_Load(object sender, EventArgs e)
{
Form1 form1 = new Form1();
form1.CalculatingArea += new evtCalculatingArea(MainFrom_CalculatingArea);
}
private void MainFrom_CalculatingArea()
{
throw new Exception("The method or operation is not implemented.");
}
}
}
Top
7 楼xvting(xvting)回复于 2006-06-05 13:41:54 得分 0
.net里一般是一个事件对应一个On方法
如:Button的Click事件对应OnClick方法
public override OnClick(EventArgs e)
{
if (eventClick != null)
{
eventClick(this, e);
}
}
eventClick 就是在Button类中定义的私有事件变量,也就是事件Click
如果没有给Click事件挂载任何代码,就会判断为Null,不执行操作。
因为OnClick方法是override的,所以可以直接继承Button,然后重载OnClick方法,这和使用Click事件的效果是一样的。
一个事件对应一个On方法只是一个良好的代码模式,并不是一定要机械的这么写,看实际需要Top




