C#窗口切换问题:如何切换回主窗体
(环境VS2010,C#,WPF工程)是这样的,我有一个程序,本来就是Mainwindow,运行的时候自动显示的就是这个窗体,也没有经过实例化什么MainwindowXX...
(环境VS2010,C#,WPF工程)
是这样的,我有一个程序,本来就是Mainwindow,运行的时候自动显示的就是这个窗体,也没有经过实例化什么Mainwindow XX=new XXXX的语句
现在我想做到这样:
为窗口Mainwindow设计一个小窗体,当点击Mainwindow上的按钮时,主窗体隐藏,小窗体显示;当点击小窗体上的一个按钮时,小窗体隐藏,主窗体恢复显示。(有点像悬浮窗那种的)
我已经知道可以用shutdown的方法使两者同步关闭,但是从小窗体恢复成主窗体时遇到了问题:
我在主窗体的cs文件中使用Preview smallwindow=new Preview()
在Window_Loaded中将smallwindow的visibility设置成hidden
在按钮事件中写this.Hide()以及smallwindow.Show()
但在子窗体Preview.cs中遇到了问题,不知道如何把主窗体恢复显示,this应该不管用了吧,而且Mainwindow没有那种new语句,也没有为它定义名称,这样也没法用XX.Visibility=XXX来实现了.如何破? 展开
是这样的,我有一个程序,本来就是Mainwindow,运行的时候自动显示的就是这个窗体,也没有经过实例化什么Mainwindow XX=new XXXX的语句
现在我想做到这样:
为窗口Mainwindow设计一个小窗体,当点击Mainwindow上的按钮时,主窗体隐藏,小窗体显示;当点击小窗体上的一个按钮时,小窗体隐藏,主窗体恢复显示。(有点像悬浮窗那种的)
我已经知道可以用shutdown的方法使两者同步关闭,但是从小窗体恢复成主窗体时遇到了问题:
我在主窗体的cs文件中使用Preview smallwindow=new Preview()
在Window_Loaded中将smallwindow的visibility设置成hidden
在按钮事件中写this.Hide()以及smallwindow.Show()
但在子窗体Preview.cs中遇到了问题,不知道如何把主窗体恢复显示,this应该不管用了吧,而且Mainwindow没有那种new语句,也没有为它定义名称,这样也没法用XX.Visibility=XXX来实现了.如何破? 展开
展开全部
可以把主窗口作为参数传给子窗口
代码如下:
主窗口:
public partial class frmMain : Form
{
public static frmMain f0 = null; //用来引用主窗口
public frmMain()
{
InitializeComponent();
f0 = this; //赋值
}
private void button1_Click(object sender, EventArgs e)
{
new frmCx().Show();
this.Hide();
}
子窗口:
public partial class frmCx : Form
{
public frmCx()
{
InitializeComponent();
}
private void frmCx_FormClosing(object sender, FormClosingEventArgs e)
{
frmMain.f0.Show(); //显示主窗口
}
}
代码如下:
主窗口:
public partial class frmMain : Form
{
public static frmMain f0 = null; //用来引用主窗口
public frmMain()
{
InitializeComponent();
f0 = this; //赋值
}
private void button1_Click(object sender, EventArgs e)
{
new frmCx().Show();
this.Hide();
}
子窗口:
public partial class frmCx : Form
{
public frmCx()
{
InitializeComponent();
}
private void frmCx_FormClosing(object sender, FormClosingEventArgs e)
{
frmMain.f0.Show(); //显示主窗口
}
}
展开全部
变量法
smallwindow 添加
public Mainwindow mainwindow ;
我在主窗体的cs文件中使用Preview smallwindow=new Preview()
添加 smallwindow.mainwindow = this;
smallwindow 添加
public Mainwindow mainwindow ;
我在主窗体的cs文件中使用Preview smallwindow=new Preview()
添加 smallwindow.mainwindow = this;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
定义一个Mainwindow类型的变量mainwindow,当显示小窗体时,把this赋予小窗体中的mainwindow,然后就可以在小窗体中用mainwindow.hide()
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在子窗体可以使用this.Owner来获取父窗体的实例
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
//主窗体
public partial class MainForm : Form
{
Preview smallWindow;
public MainForm()
{
InitializeComponent();
smallWindow = new Preview(this);
}
private void button1_Click(object sender, EventArgs e)
{
this.Hide();
smallWindow.Show();
}
}
//子窗体
public partial class Preview : Form
{
private Form mainWindow;
public Preview(Form mainWindow)
{
InitializeComponent();
this.mainWindow = mainWindow;
}
private void button1_Click(object sender, EventArgs e)
{
this.Hide();
mainWindow.Show();
}
private void Preview_FormClosed(object sender, FormClosedEventArgs e)
{
mainWindow.Show();
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询