程序中有两个窗口,窗口1中有listview1控件,操作正常,在窗口1中调用窗口2,然后窗口2若干操作后调用窗口1的某个函数如NetPlay(),返回窗口1的NetPlay函数,进入正常(NetPlay中的messagebox能弹出)但是我在操作listview1(如listview1.Items.Clear())的时候无法操作,对程序没有任何的反应,但程序没有报错
也就是说,我进入了从窗口1进入窗口2后,在窗口2中调用窗口1的某个函数,该函数其它一切正常,只是在调用窗口1里面的控件的时候没反应(但也没报错),这是什么原因相关代码  MiniMedia是窗口1的名字 NetMedia窗口2
MiniMedia某函数()
{
     NetMedia Dlg = new NetMedia();
     Dlg.ShowDialog(this);            
}
窗口2中
MiniMedia MiniMediaClass = new MiniMedia();
NetMedia某函数()
{
    MiniMediaClass.NetPlay();//此函数是窗口1中的
}
窗口1中的 NetPlay()
{
    MessageBox.Show("哈哈");//正常显示
    listView1.Items.Clear();//不起作用,不报错,但是在其他函数中使用正常
}

解决方案 »

  1.   

    窗口2中
    MiniMedia MiniMediaClass = new MiniMedia();你窗口二自己拥有了一个窗口一得对象,当然不行。
    你必须要把窗口一得对象传入public class 窗口一
    {
    MiniMedia某函数()
    {
      NetMedia Dlg = new NetMedia();
    dlg.ParentForm = this;//不是Parent就是ParentForm,多试试。
      Dlg.ShowDialog(this);   
    }
    }NetMedia某函数()
    {
      ((MiniMediaClass)this.ParentForm).NetPlay();
    }
      

  2.   

     NetMedia Dlg = new NetMedia();
     dlg.Parent = this;
     Dlg.ShowDialog(this);   
     使窗体1成为窗体2的父窗体!