从描述无法判断.是否计算没有完成?是否阻塞了UI线程是否在page1 Control.GotFocus做了什么动作?是否有在不断的重绘UI?

解决方案 »

  1.   

    window from下面DataGridView绑定100条很多了,感觉上去是很慢的,如果网速再差点就没法看了。分页吧
      

  2.   


    先谢过兄台。
    是否计算没有完成?
    ---------确实计算完成了。是否阻塞了UI线程
    ---------这个不太明白。是否在page1 Control.GotFocus做了什么动作?
    --------这个倒是有个事件,是加载一个菜单而已。没有其他。是否有在不断的重绘UI?
    --------page1中的几个datagridview都已经绘成,我点到别的标签页再回来,还需要重绘么?
      

  3.   

    Page1内部是否也有一些计算或者其他什么的
    而且Page2中的计算过程以及完成的过程需要确定好,
    可以自己调试一下
    建议学习了解下多线程的应用,使用多线程的方法来实现~
      

  4.   

    100多条就多了啊?这个我还真没经验。不过3个DataGridView每个不超过30条的。3个加起来100条不到。
      

  5.   


    兄好,page1没计算,都是已经生成的数据,我只是点击page2执行以下计算,计算结果完成后,显示正常,我在点回page1,就没响应了。
    多线程感觉用不到呢,因为根本不是同时进行的。操作完page1采取操作page2.然后再回来。不存在二者同时进行的可能。
      

  6.   

    恩,你可以试试使用多线程。public bool working;
    public static void threadworks() 
    {
          while (working)
          {
                 // 你要做的;
          }
    }初始化函数内:
    working = true;
    Thread thread = new Thread(new ThreadStart(threadworks));
    thread.Start();启动线程:
    working = true;
    thread.Start();
    退出线程:
    working = false;
    thread.join();这样的
      

  7.   

    除了建议使用多线程外,你可以试试排除法,一点点来排除是什么问题,你可以将page1的业务逻辑先全部清除,然后试试,如果正常那就是page1有其问题,否则就是page2,然后再一点点做排除~
      

  8.   

    在你怀疑还可能额外执行的每一个方法的第一行,加一个Debug.Print,打印当前的方法名、参数值。然后执行你的程序,重现你的问题。打开vs的调试中的“结果”窗口,看看打印的方法调用日志。看看有什么方法正在拼命地被循环调用着。
      

  9.   

    肯定是你 page2 做什么事情的时候死循环了,这个要具体看你的代码的,你这么说,说不清楚的,我们也不清楚
      

  10.   

    用回调吧,给你个例子
    http://download.csdn.net/detail/hu1990728/6470589
      

  11.   

    大致代码如下:
    2个Datagridview。
    点击datagridview1的行,datagrideview2中显示详细信息。
    datagridview1_cellClick
    {
       ShowDetail(int row); //row行内容中的要素
    }ShowDetail(int row)
    {
         //数据库中查询获得数据
        DataTable dt =   GetData();//不超过100行数据
        datagrideview2.datasource = dt;
    }请教,如果用多线程或者委托,该如何。
      

  12.   

    c# 5.0添加了2个关键字async await能更轻松的实现异步编程~~http://msdn.microsoft.com/zh-cn/library/hh191443.aspx
      

  13.   

    程序没死,调试也跳不出问题,只是界面像刷过了一样,有些地方模糊,如果你拉动dagagrid的边缘,还能拉动,而且就有恢复正常了。ps:GetData那里的查询稍微复杂一点,是不是跟这个有关系?