求教c#添加事件实现问题
当我们对某个控件双击他的事件时候,系统自动生成了
private void saveAsMenuItem_Click(object sender, System.EventArgs e)
{
}
我想问,这个在是怎么自动生成的。 --------------------编程问答-------------------- 这个问题问的有点大。
委托、事件机制 --------------------编程问答-------------------- 我在研究sharpdevelop源码,老是找不到这一块在哪里添加进去的 --------------------编程问答--------------------
[DefaultEvent("OnError")] //<---
class My : Component
{
public event EventHandler OnError;
}
DefaultEventAttribute告诉设计器,该类的默认事件是OnError,设计器就可以在双击组件的时候,自动生成相应代码。 --------------------编程问答--------------------
谢谢具体应该加在哪一块呢? --------------------编程问答-------------------- 你全局搜索saveAsMenuItem_Click,看在哪里订阅了。 --------------------编程问答--------------------
private void saveAsMenuItem_Click(object sender, System.EventArgs e)--------------------编程问答-------------------- 有没有人对这块了解过?
{
if (CurrentActiveDocumentLoaderType == LoaderType.NoLoader)
{
MessageBox.Show("Cannot persist document created without loaders");
return;
}
if (CurrentActiveDocumentLoaderType == LoaderType.CodeDomDesignerLoader)
{
MessageBox.Show("Cannot persist document created using CodeDomDesignerLoader");
return;
}
HostControl currentHostControl = CurrentDocumentsHostControl;
((BasicHostLoader)currentHostControl.HostSurface.Loader).Save(true);
}
我研究的是基于sharpdevelop的一个开源软件,DesignerHost,我能实现双击添加事件,并且初始化自动加进去了
this.button1.Click += new System.EventHandler(this.handler_button1_Click);
但是事件方法没有加进去运行时找不到
Button1_Click定义。 --------------------编程问答--------------------
做的是这个http://blog.csdn.net/wonsoft/article/details/5828613
saveAsMenuItem_Click这是一个例子,其中一个控件,所有控件都有这个问题。 --------------------编程问答-------------------- 你能自己手动添加事件吗? --------------------编程问答-------------------- 这问题有点深奥
菜鸟路过帮顶
手动写个函数,在按钮事件属性上选这个函数这个算手动吗
这个涉及.net内部处理好了委托、事件
详细的要baidu、google下 --------------------编程问答-------------------- 第一个层次:需要定义事件,并把事件加到事件链:
//这个一般在designer.cs 文件里。但你自己添加也没问题。
this.saveAsMenuItem.Click += new System.EventHandler(this.saveAsMenuItem_Click);
private void saveAsMenuItem_Click(object sender, System.EventArgs e)
{
}
第二个层次:点击按钮,添加上面的代码。
这个基本有 VS 实现,通过对 Button的众多 Atribute的解析,然后定义对应的行为。 --------------------编程问答--------------------
谢谢。。。我试一下
--------------------编程问答-------------------- 还是不对。。有没有技术牛人在此? --------------------编程问答--------------------
补充:.NET技术 , C#