如何在显示 winforms 应用程序的主屏幕之前显示欢迎屏幕?
How to show a welcome screen before the main screen of a winforms application is shown?
我想在应用程序启动时加载欢迎屏幕,然后用户单击欢迎屏幕上的按钮,然后关闭欢迎屏幕。最后再显示主画面。
static void Main() //startup method being called
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new ACM812_DB()); // welcome screen
}
在欢迎屏幕上单击按钮后,它会隐藏欢迎 window,然后调出主 window。如下图
private void button1_Click(object sender, EventArgs e)
{
Form1 form1 = new Form1();
form1.Show(); // main window
this.Hide();
}
它确实工作成功,但它是实现它的正确方法吗?
更新代码:
主窗体启动(MainForm.cs)
namespace System
{
public partial class MainForm : Form
{
private void MainForm_Load(object sender, EventArgs e)
{
WelcomeForm.Run(this);
}
public MainForm()
{
InitializeComponent();
}
}
}
然后调用欢迎屏幕
public partial class WelcomeForm : Form
{
static private Form Sender;
static public void Run(Form sender)
{
if (sender == null)
throw new ArgumentNullException();
Sender = sender;
new WelcomeForm().ShowDialog();
}
private void ButtonClose_Click(object sender, EventArgs e)
{
Close();
}
}
不是一个很好的模式。
因为 Application 实例是用来管理在应用程序退出之前一直处于“活动”状态的主窗体的。
您可以在主窗体加载中将欢迎屏幕显示为对话框:
MainForm.cs
private void MainForm_Load(object sender, EventArgs e)
{
WelcomeForm.Run(this);
}
WelcomeForm.cs
public partial class WelcomeForm : Form
{
static private Form Sender;
static public void Run(Form sender)
{
if (sender == null)
throw new ArgumentNullException();
Sender = sender;
new WelcomeForm().ShowDialog();
}
private void ButtonClose_Click(object sender, EventArgs e)
{
Close();
}
}
因此欢迎屏幕可以控制主窗体并设置任何 public 所需的数据。
MainForm 是在 Main 方法中创建的,Application 实例负责控制。因此调用 MainForm 的加载事件,最后调用 WelcomeForm 的 运行 静态方法,该方法创建一个实例并将其显示为对话框。这会停止 MainForm(尚未显示),直到欢迎屏幕关闭。然后就可以显示MainForm了。
这是其他方法中的一种,但很简单,如果它符合您的目标。
我想在应用程序启动时加载欢迎屏幕,然后用户单击欢迎屏幕上的按钮,然后关闭欢迎屏幕。最后再显示主画面。
static void Main() //startup method being called
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new ACM812_DB()); // welcome screen
}
在欢迎屏幕上单击按钮后,它会隐藏欢迎 window,然后调出主 window。如下图
private void button1_Click(object sender, EventArgs e)
{
Form1 form1 = new Form1();
form1.Show(); // main window
this.Hide();
}
它确实工作成功,但它是实现它的正确方法吗?
更新代码:
主窗体启动(MainForm.cs)
namespace System
{
public partial class MainForm : Form
{
private void MainForm_Load(object sender, EventArgs e)
{
WelcomeForm.Run(this);
}
public MainForm()
{
InitializeComponent();
}
}
}
然后调用欢迎屏幕
public partial class WelcomeForm : Form
{
static private Form Sender;
static public void Run(Form sender)
{
if (sender == null)
throw new ArgumentNullException();
Sender = sender;
new WelcomeForm().ShowDialog();
}
private void ButtonClose_Click(object sender, EventArgs e)
{
Close();
}
}
不是一个很好的模式。
因为 Application 实例是用来管理在应用程序退出之前一直处于“活动”状态的主窗体的。
您可以在主窗体加载中将欢迎屏幕显示为对话框:
MainForm.cs
private void MainForm_Load(object sender, EventArgs e)
{
WelcomeForm.Run(this);
}
WelcomeForm.cs
public partial class WelcomeForm : Form
{
static private Form Sender;
static public void Run(Form sender)
{
if (sender == null)
throw new ArgumentNullException();
Sender = sender;
new WelcomeForm().ShowDialog();
}
private void ButtonClose_Click(object sender, EventArgs e)
{
Close();
}
}
因此欢迎屏幕可以控制主窗体并设置任何 public 所需的数据。
MainForm 是在 Main 方法中创建的,Application 实例负责控制。因此调用 MainForm 的加载事件,最后调用 WelcomeForm 的 运行 静态方法,该方法创建一个实例并将其显示为对话框。这会停止 MainForm(尚未显示),直到欢迎屏幕关闭。然后就可以显示MainForm了。
这是其他方法中的一种,但很简单,如果它符合您的目标。