首先调用了 
Control.CheckForIllegalCrossThreadCalls = false;//这个应该可以阻止错误的跨线程调用的调用控件 
问题: 
    非创建DataGridView的线程中更新DataGridView数据,导致垂直滚动条无效(点击无效).但是数据都对 
  (说明跨线程调用并未产生异常) 
    而且:在另两个非创建DataGridView的线程中更新另两个个DataGridView数据却不会导致 
有无高手指点???? 在CSDN的另一篇文章: 
"郁闷中,VS2005中使用另一线程更新DataGridView时滚动条动不了" 
地址:http://topic.csdn.net/t/20060116/17/4519880.html 
中描述的不要在创建控件以外的线程操作控件,Net  2.0已经把这个作为异常了。 
这个对我这个问题的解决似乎无用,因为 
首先:主线程中(创建控件的线程)调用了 
Control.CheckForIllegalCrossThreadCalls = false; 
其次: 
我共开启三个线程, 
并且都对主线程的控件进行操作,为何另两个正常,而只有一个出现绘制错误? 
因为DataGridView的数据都对,并且可以使用PgUp、PgDn、上下左右键等。 有没有牛人解决下.... 

解决方案 »

  1.   

    最好是使用begininvoke在主线程操作控件
      
    *****************************************************************************
    欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码) http://feiyun0112.cnblogs.com/
      

  2.   

    Control.CheckForIllegalCrossThreadCalls = false;//这个应该可以阻止错误的跨线程调用的调用控件 不要用这个,这个不是阻止而是忽略错误,不保证安全,用在多线程里有可能会发生莫名其妙的内存错误,会死得很惨你要在线程里用委托去操作另一个线程里的控件