我正在创建一个包含首次运行检查的 winform 应用程序。我一直在关注这两篇文章:
- 如何检查程序是否是第一次运行?
- C# 中的 Windows 窗体用户设置
首次运行检查应该检查应用程序是否曾经运行过,如果没有运行过,它应该向用户显示一些消息。
我遇到的问题是显示此消息beforewinform 应用程序已初始化/显示,我无法找出原因。
这是我的代码:
程序.cs
public static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
Form1.cs
public Form1()
{
this.InitializeComponent();
CheckFirstRun();
}
private static void CheckFirstRun()
{
if(Settings.Default.FirstRun)
{
MessageBox.Show(
"First run");
Settings.Default.FirstRun = false;
Settings.Default.Save();
}
它显示带有消息的消息框:“首次运行”,单击“确定”按钮后,它显示 WinForm。我想要实现的是首先显示 WinForm,如果它是第一次运行,则显示此 msgBox。
有任何想法吗?
而不是打电话CheckFirstRun()
从构造函数中你可以调用它表格所示
表格显示事件
Shown 事件仅在第一次显示表单时引发;
随后最小化、最大化、恢复、隐藏、显示或
失效和重画不会引发此事件
private void Form1_Shown(Object sender, EventArgs e)
{
CheckFirstRun();
}
覆盖 OnShown
OnShown 方法还允许派生类在不附加委托的情况下处理事件。这是在派生类中处理事件的首选技术,MSDN
继承人须知在派生类中重写 OnShown 时,请务必调用基类的 OnShown 方法,以便注册的委托接收事件,MSDN.
protected override void OnShown(EventArgs e)
{
base.OnShown(e);
CheckFirstRun();
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)