有一个主窗体A是MDI容器,启动A后同时Show二个窗体B和C我操作B窗体时,C窗体是未激活的,我在B窗体假如选择一行数据弹出一窗体D,进行操作后,关闭窗体D,这时我窗体B的数据即时更新了,然后我将一些数据传递到了C窗体中,我想将这些数据添加到C的ListView中,程序是执行了,但C窗体就是显示不出数据(C窗体这时还是未激活的),只有重新点鼠标激活C窗体后,刷新数据才会出来。
请问是什么原因呢,一定要用程序激活C窗体,然后加载的数据才能显示吗?有什么办法呢???
假如我选择B窗体的某一项,我想让C窗体的相应项也选中,不是没法实现?

解决方案 »

  1.   

    是用的停靠,但还是不行B,C窗体都是停靠在A窗体上的,目前是选择B中的某一项数据,C窗体激活不了,选择C中的某一行数据,B激活不了。我想实现有二个功能:
    1:选择B中的某一数据,即时的在C窗体中相应的数据也被选中,且将其排到C窗体列表控件的第一行。2:选择B中的某一数据操作完了了,将数据传递到C窗体,让C窗体的列表控件中添加一行传过来的数据。
    ----
    现在是数据是传过来了,添加操作也执行了,但就是显示不出来,一定要人为的去重新刷一下才出来,难道一定要先激活C窗体,添加的数据才能即时显示???
      

  2.   

    像vs平台一样,如果我在某个窗体编写代码,如果有行代码出错,vs平台下面那个停靠的错误列表马上就显示出来错误信息了,它是怎么实现的呢?我在B窗体操作一行数据,把值传到了C窗体,C窗体中的ListView加载了数据,但为什么不即时显示数据呢?有人知道吗?
      

  3.   

    在A主窗全中定义一个ListView变量...在B,C窗体新建一方法及一ListView变量 lv        
            public formB/formC(ListView lv3)
            {
                InitializeComponent();
                lv=lv3;
            }
    在SHOW B,C窗体时.把这个变量引用传递进去...如formB fb=new formB(ListView lv3)formC fb=new formC(ListView lv3)在C窗体中 lv3=listView1; //赋值控件
    这样就能在A,B,C三个窗体中操作同一个列表控件如果LZ觉的这个麻烦,可以把ListView lv3 这个声明为静态全局变量,可以为项目定义一个静态类..
      

  4.   

    这个项目中也会经常用到,如主窗休销售单,新增一个窗体选择订单明细,点添加,主窗体的销售单会增加子窗体选择的订单明细如果声明为静态变量,哪整个项目中都可以访问到了..不过要检查是否有效...1:选择B中的某一数据,即时的在C窗体中相应的数据也被选中,且将其排到C窗体列表控件的第一行。B在选中时.再遍历传进来的LV列表变量..再选中相应行...
      

  5.   

    原因可能是这样的,你传数据到C窗体时,是在构造里加载或是调用一个显示listview的方法对吧,构造只作初始化了,但没有加载进控件,如果你把传去的数据或是调用的方法在C_load里的话,应该能正常显示数据了,你试试看。