
C#窗体局部控件用新窗体最大化之后,按下ESC推出全屏。这时原窗体的控件被清掉了。怎么会这样?
这是让窗口某一个控件全屏显示的问题。比如我做了一个用户控件,上面播放视频,我新建一个窗体,将视频播放控件添加到新的窗体中。然后让新窗体达到最大化效果,控件DockFill...
这是让窗口某一个控件全屏显示的问题。比如我做了一个用户控件,上面播放视频,我新建一个窗体,将视频播放控件添加到新的窗体中。然后让新窗体达到最大化效果,控件Dock Fill。这样要退出全屏需要将新窗体的所有控件首先清空,然后关闭新窗口。但这时问题出现了,老窗口的控件消失掉了。具体代码是这样的:
//按下ESC
void frm_onEsc(frmFullScreen frm)
{
frm.Controls.Clear();
frm.Close();
frm = null;
}
//让局部控件在新窗口显示全屏
void ucVideoControl1_OnFullScreen()
{
Psap.Vft.App.Module.FileManage.frmFullScreen frm = new frmFullScreen();
frm = new frmFullScreen();
frm.Controls.Add(ucVideoControl1);
frm.onEsc += new frmFullScreen.delegateEsc(frm_onEsc);
frm.ShowDialog(this);
}
我将frm.Controls.Clear() frm = null去掉了
但是退出全屏,原窗口的播放控件还是不见了。这是为什么啊?
噢,我自己解决了。我在
//按下ESC
void frm_onEsc(frmFullScreen frm)
{
frm.Close();
//重新添加播放控件到窗体
this.Panel.Controls.Add(ucVideoControl1);
}
这样居然神奇的好了
我现在有两个视频播放控件。两个视频全屏按钮,让一个视频控件在新窗体全屏当然要保证新窗体不包含任何控件。那么当然在退出全屏的情况下要将所有的控件都清掉。懂不懂不懂不?! 展开
//按下ESC
void frm_onEsc(frmFullScreen frm)
{
frm.Controls.Clear();
frm.Close();
frm = null;
}
//让局部控件在新窗口显示全屏
void ucVideoControl1_OnFullScreen()
{
Psap.Vft.App.Module.FileManage.frmFullScreen frm = new frmFullScreen();
frm = new frmFullScreen();
frm.Controls.Add(ucVideoControl1);
frm.onEsc += new frmFullScreen.delegateEsc(frm_onEsc);
frm.ShowDialog(this);
}
我将frm.Controls.Clear() frm = null去掉了
但是退出全屏,原窗口的播放控件还是不见了。这是为什么啊?
噢,我自己解决了。我在
//按下ESC
void frm_onEsc(frmFullScreen frm)
{
frm.Close();
//重新添加播放控件到窗体
this.Panel.Controls.Add(ucVideoControl1);
}
这样居然神奇的好了
我现在有两个视频播放控件。两个视频全屏按钮,让一个视频控件在新窗体全屏当然要保证新窗体不包含任何控件。那么当然在退出全屏的情况下要将所有的控件都清掉。懂不懂不懂不?! 展开
3个回答
展开全部
frm.Controls.Clear();
这句是清新窗口的控件的吧,应该和老窗口没关系的啊
不过这句可以不写的,close后就清了
你去了这句试试看老窗口控件还有么
这句是清新窗口的控件的吧,应该和老窗口没关系的啊
不过这句可以不写的,close后就清了
你去了这句试试看老窗口控件还有么
追问
去掉了frm.Controls.Clear(); 退出全屏就发现控件没了~
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询