我想在应用程序启动时加载欢迎屏幕,然后用户单击欢迎屏幕上的按钮,然后关闭欢迎屏幕。最后显示主屏幕。
static void Main() //startup method being called
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new ACM812_DB()); // welcome screen
}
当单击欢迎屏幕上的按钮时,它会隐藏欢迎窗口,然后打开主窗口。如下图。
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();
}
}
最佳答案
这并不是一个好的模式。
因为应用程序实例是为了管理主窗体,所以主窗体在应用程序退出之前一直处于“事件状态”。
您可以在主表单加载中将欢迎屏幕显示为对话框:
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 的Run 静态方法,该方法创建一个实例并将其显示为对话框。这将停止尚未显示的 MainForm,直到欢迎屏幕关闭。然后就可以显示MainForm了。
这是众多方法中的一种,但如果它符合您的目标,那么它很简单。
关于c# - 如何在 winforms 应用程序的主屏幕显示之前显示欢迎屏幕?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62740385/