dgv();//调用委托,刷新数据表 
委托在哪定义的,里面到底绑定了什么方法?
只看到你定义了个dgv,然后就执行了?

解决方案 »

  1.   

    DelegateDGV dgv = new DelegateDGV(Refreshdgv); 
    private MainFrm.DelegateDGV dgv; 
    定义了2遍,然后函数中的dgv将全局的dgv替换掉了Control.CheckForIllegalCrossThreadCalls =false; 
    线程中直接控制控件,并且不报错
    你这委托用的毫无意义啊,跟直接调用函数有任何区别?
      

  2.   

    Control.CheckForIllegalCrossThreadCalls =false; 这句话拿掉
    然后好好看看线程中委托操作UI到底应该是怎么个过程
      

  3.   

        static class Program
        {
            /// <summary>
            /// 应用程序的主入口点。
            /// </summary>
            [STAThread]
            static void Main()
            {
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                Application.Run(new MainFrm ());
            }Application.Run(new MainFrm ());调试的时候这行黄色报错,“未处理NullReferenceException,未将对象引用设置到对象实例”看线程是运行到了CurrentShow()的SqlDataReader rdr = cmd.ExecuteReader(); 然后就捕捉到了异常。大惑不解。
      

  4.   

        static class Program
        {
            /// <summary>
            /// 应用程序的主入口点。
            /// </summary>
            [STAThread]
            static void Main()
            {
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                Application.Run(new MainFrm ());
            }Application.Run(new MainFrm ());调试的时候这行黄色报错,“未处理NullReferenceException,未将对象引用设置到对象实例”看线程是运行到了CurrentShow()的SqlDataReader rdr = cmd.ExecuteReader(); 然后就捕捉到了异常。版主看看。