当我们对某个控件双击他的事件时候,系统自动生成了
private void saveAsMenuItem_Click(object sender, System.EventArgs e)
        {
                      
        }
我想问,这个在是怎么自动生成的。

解决方案 »

  1.   

    我在研究sharpdevelop源码,老是找不到这一块在哪里添加进去的
      

  2.   


        [DefaultEvent("OnError")]    //<---
        class My : Component
        {
            public event EventHandler OnError;
        }DefaultEventAttribute告诉设计器,该类的默认事件是OnError,设计器就可以在双击组件的时候,自动生成相应代码。
      

  3.   

    你全局搜索saveAsMenuItem_Click,看在哪里订阅了。
      

  4.   


    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);
            }
      

  5.   

    有没有人对这块了解过?
    我研究的是基于sharpdevelop的一个开源软件,DesignerHost,我能实现双击添加事件,并且初始化自动加进去了this.button1.Click += new System.EventHandler(this.handler_button1_Click);
    但是事件方法没有加进去运行时找不到Button1_Click定义。
      

  6.   

    做的是这个http://blog.csdn.net/wonsoft/article/details/5828613
    saveAsMenuItem_Click这是一个例子,其中一个控件,所有控件都有这个问题。
      

  7.   

    第一个层次:需要定义事件,并把事件加到事件链:
    //这个一般在designer.cs 文件里。但你自己添加也没问题。
    this.saveAsMenuItem.Click += new System.EventHandler(this.saveAsMenuItem_Click);
    private void saveAsMenuItem_Click(object sender, System.EventArgs e)
            {
                          
            }第二个层次:点击按钮,添加上面的代码。
    这个基本有 VS 实现,通过对 Button的众多 Atribute的解析,然后定义对应的行为。