private void ReportInitialize
{....内容}
我想在上面带入一个字符串变量,改为了:private void ReportInitialize(string abc)
然后引用的时候用到ReportInitialize("aaa");
为什么提示出错信息:应输入方法名称

解决方案 »

  1.   

    ReportInitialize
    是你自己定义的属性吗?
      

  2.   

    怎么调的
    ReportInitialize是继承的什么类或接口?还是你自己定义的方法?
      

  3.   

    谢谢楼上,大致代码如下。    public partial class frmReport : Form
        {
            public string P_str_sql;
            
            public frmReport()
            {
                InitializeComponent();            Report.Initialize += new _IGridppReportEvents_InitializeEventHandler(ReportInitialize(P_str_sql));   //这里引用方法        }        private void ReportInitialize(string test)  //这里定义方法,加上参数后出错,不加可以运行.
            {
                           MessageBox.Show(test);  
            }
    出错提示为:应输入方法名称
      

  4.   

    声明委托是不能带参数的
    Report.Initialize += new _IGridppReportEvents_InitializeEventHandler(ReportInitialize); 
      

  5.   

    ReportInitialize 这里面不能加参数,
    如果一定要加参数 要改声明的那个delegate 方法加参数.
      

  6.   

    http://blog.csdn.net/zhypmq/archive/2008/05/24/2477592.aspx
      

  7.   

    你先看看_IGridppReportEvents_InitializeEventHandler的定义可以带参数吗?
      

  8.   

    委托里不能这么写的吧!
     Report.Initialize += new _IGridppReportEvents_InitializeEventHandler(ReportInitialize);   //这里引用方法        }        private void ReportInitialize()  //这里定义方法,加上参数后出错,不加可以运行.
            {
                           MessageBox.Show("ss");  
            }
      

  9.   

    你可以定义个类的字段,通过这个字段代替ReportInitialize的参数来传值
      

  10.   


    哪里看出是委托呢?没有delegate关键字呀
      

  11.   

        public partial class frmReport : Form
        {
            public string P_str_sql;
            
            public frmReport()
            {
                InitializeComponent();            Report.Initialize += new _IGridppReportEvents_InitializeEventHandler(ReportInitialize()); 
            }        private void ReportInitialize()  //这里定义方法,加上参数后出错,不加可以运行.
            {
                 MessageBox.Show(P_str_sql);
            }
    这样不也能达到你要的效果吗
      

  12.   

    谢谢楼上,
     Report.Initialize += new _IGridppReportEvents_InitializeEventHandler(ReportInitialize()); 
    这段代码在该程序的其他位置也要调用到,要动态改变sql语句,所以如果直接在方法里面就绑定全局变量的,那么后面就没法动态改变该方法中的sql变量了,没法做到动态改变表格内容了。具体用了mdi更改那个全局变量,相应代码如下:
                if (frmSearch.ShowDialog() == DialogResult.OK)
                {
                    P_str_sql = frmSearchInfo.G_str_sql;
                    if (P_str_sql != "")
                    {
                       Report.Initialize += new _IGridppReportEvents_InitializeEventHandler(ReportInitialize(P_str_sql));//这里要让刚才的方法动态改变数据内容 
                    }
                }
      

  13.   

    另外,new _IGridppReportEvents_InitializeEventHandler这个已经被dll封装了,没法改.
      

  14.   

    P_str_sql 这个字段不是public的吗,你在执行 Report.Initialize += new _IGridppReportEvents_InitializeEventHandler(ReportInitialize()之前,把sql语句赋值给P_str_sql他
      

  15.   

    多谢楼上,
    不过P_str_sql是定义的public string的.我其实就是想在ReportInitialize()方法里面定义一个string的变量字段,然后后面引用的时候改变那个P_str_sql的值,然后在调用下带参数的方法改变表格内容.不过现在 _IGridppReportEvents_InitializeEventHandler是没办法改了,这个委托也是必须要用到东西,还有什么办法能够解决那个方法传参问题吗?
      

  16.   

    忘了说了,是c# winform的程序。
      

  17.   

    没了,你那个dll也不能改,而且要用那个事件