本文将介绍在 Visual C# 中,如何模拟登录界面与主窗体的交互。
假设主窗体为 Form1,登录窗体为 Form2,Form2 中有一个按钮 button1。打开程序首先看到 Form2,在 From2 点击 button1 后,会隐藏 Form2 并显示 Form1。
对于上述问题,我想到的有两种方法:
- 把 Form2 作为主窗体,当点击 button1 后,调用 Hide() 隐藏 Form2,然后调用 Show() 显示 Form1。
- 把 Form1 作为主窗体,在 Form1 的
Form_Load中,调用 ShowDialog() 显示 Form2。使用模式对话框 ShowDialog() 方式打开窗体 Form2。当窗体 Form2 关闭或销毁时,必然要返回一个DialogResult,默认为none。只要在 Form1_Load 中对DialogResult进行判断即可达到此效果。
第 1 种方法,Form2 只是隐藏,并没有销毁。本文介绍第 2 种方法。
Form1 的代码如下:
namespace Test
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
this.Hide();
this.ShowInTaskbar = false;
Form2 form2 = new Form2();
if (form2.ShowDialog() == DialogResult.OK)
{
this.Show();
}
}
}
}
其中,在 Form1_Load() 中,需要用 this.Hide(); 和 this.ShowInTaskbar = false; 两句语句才能隐藏 Form1。只用 this.Hide(); 无法隐藏主窗体。
Form2 的代码如下:
namespace Test
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
this.DialogResult = DialogResult.OK;
this.Dispose();
}
}
}

3570

被折叠的 条评论
为什么被折叠?



