以下语句运行时出现以下错误
“实例方法不能具有空的this  ”this.orderLogo1.onValueChanged += new EC.Controls.orderLogo.valuechange(this.orderLogo1_onValueChanged);

解决方案 »

  1.   

    this 是 指 当前对象..你这个对象是哪个了?
      

  2.   

    你的后台orderLogo1_onValueChanged方法被你删了吧,你直接把报错的这句话删了就好了晒
      

  3.   

    以下是我写的事例委托
    /// <summary>
            /// 
            /// </summary>
            /// <param name="status"></param>
            public delegate void valuechange(string  status);
            /// <summary>
            /// 换行
            /// </summary>
            public event valuechange onValueChanged;
            /// <summary>
            /// 状态
            /// </summary>
                   public string  status
            {
                get
                {                if (cmb_logo.SelectedIndex > -1)
                    {
                        return cmb_logo.SelectedValue.ToString();
                    }
                    else
                    {
                        return "";
                    }
                }
            }
            public string statusCaption
            {            get
                {                if (cmb_logo.SelectedIndex > -1)
                    {
                        return cmb_logo.Text;
                    }
                    else
                    {
                        return "";
                    }
                }
            }        private void cmb_logo_SelectedValueChanged(object sender, EventArgs e)
            {
                if (onValueChanged != null)
                {
                    onValueChanged(status);
                }
            }        private void orderLogo_Load(object sender, EventArgs e)
            {
                cmb_logo.ImageList = GetImageList.OrderOrderLogoImages ();
                cmb_logo.DisplayMember = "name";
                cmb_logo.ValueMember = "id";
                cmb_logo.ImageIndexMember = "imageid";
                cmb_logo.DataSource = DevFunc.DtOrderLogo ();
                cmb_logo.SelectedIndex = 3;
            }
      

  4.   

    this.orderLogo1.onValueChanged += new EC.Controls.orderLogo.valuechange(orderLogo1_onValueChanged);
      

  5.   

    orderLogo1_onValueChanged这个方法在后台也有吗?
      

  6.   


    this.orderLogo1.onValueChanged 
    += new EC.Controls.orderLogo.valuechange(this.orderLogo1_onValueChanged);如果我没眼花,蓝色与红色部分是同一个东西吧。问题应该是出在这里,蓝色部分是一个委托,而红色部分应该是你作为参数的某个方法。比如说这样:
    private void OnLoad(object sender, EventArgs e)
    {
        this.orderLogo1.onValueChanged += new EC.Controls.orderLogo.valuechange(this.ImplementationMethod);
    }private void ImplementationMethod(string status)
    {
        //... ...
    }
      

  7.   

    参数的方法是
    private void cmb_logo_SelectedValueChanged(object sender, EventArgs e)
       {
       if (onValueChanged != null)
       {
       onValueChanged(status);
       }
       }
      

  8.   

    我的意思是,你给委托添附方法那条语句的后半句有错误。传递给EC.Controls.orderLogo.valuechange这个类的构造函数的参数,应该是指向一个实际的方法,而不能是一个委托或者事件的声明。你的那个赋值语句
    this.orderLogo1.onValueChanged += new EC.Controls.orderLogo.valuechange(this.orderLogo1_onValueChanged);

    可以简单地理解为下面这样的一句。
    this.orderLogo1_onValueChanged += this.orderLogo1_onValueChanged知道这个意思了吗?
      

  9.   

    if (onValueChanged != null)
      {
      onValueChanged(status);
      }你需要保证status不为空才能调用该事件。
      

  10.   

    请问要如何保证?
    public string status
       {
       get
       {   if (cmb_logo.SelectedIndex > -1)
       {
       return cmb_logo.SelectedValue.ToString();
       }
       else
       {
       return "";
       }
       }
       }
      

  11.   

    先 new 一个 status 撒..都没实例 status 怎么可能用this 咯
      

  12.   

    用this怎么可能需要实例?请不要不懂乱说,对于非静态类,用this是很正常的,但是静态类则必须,而对于抽象类或接口则视情况,楼主是运行时出现错误,所以多数是抽象类或接口里出的问题,但是他始终无视我的回复,不肯给全代码——他爸爸是谁?看不到爸爸怎么知道能否用this