程序中有两个窗口,窗口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后,在窗口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();//不起作用,不报错,但是在其他函数中使用正常
}
MiniMedia MiniMediaClass = new MiniMedia();你窗口二自己拥有了一个窗口一得对象,当然不行。
你必须要把窗口一得对象传入public class 窗口一
{
MiniMedia某函数()
{
NetMedia Dlg = new NetMedia();
dlg.ParentForm = this;//不是Parent就是ParentForm,多试试。
Dlg.ShowDialog(this);
}
}NetMedia某函数()
{
((MiniMediaClass)this.ParentForm).NetPlay();
}
dlg.Parent = this;
Dlg.ShowDialog(this);
使窗体1成为窗体2的父窗体!