这个答案解释了如何制作我已经做过的启动画面:How to build splash screen in windows forms application?
但是我想要一些东西,第一次用户运行程序时,他会得到一个窗口,里面有一个解释,比如命令键,做什么,如何使用程序,然后点击OK。
当他再次运行程序时,他没有得到帮助窗口,而是直接进入应用程序。
我不太确定我在这里需要做什么,有人可以帮助我吗?
答案 0 :(得分:1)
第一次运行程序时,在计算机上保留持久性。文件或注册表项是最明显的选项。
对于注册表项,在伪代码中,在启动时执行以下操作:
If (registry key not present)
{
show instruction dialog
add registry key
}
对于文件:
If (file '%APPDATA%\myApp\file' does not exist)
{
Show instruction dialog
Create file '%APPDATA%\myApp\file'
}
实施,注册表项:
protected override void OnShown(EventArgs e)
{
var key = Registry.CurrentUser.CreateSubKey(@"Software\TestCompany\TestApp\");
if (key.GetValue("FirstRun") == null)
{
ShowDialog(new HelpDialogForm());
key.SetValue("FirstRun", "false");
}
}
像往常一样,为此添加必要的错误处理。上面的方法会覆盖OnShown
,即假设它在main / startup Form中声明。
答案 1 :(得分:0)
选项1: 您可能需要在帮助窗口底部使用复选框选项“不再显示此窗口”。您必须将此值保存为数据库中的设置或环境变量,该值将用于决定下次用户登录时是否显示。
选项2: 您必须存储类似“IsFirstEntryToApp”的内容,这将是默认的true,并在用户登录应用程序后立即设置为false。这将是您显示帮助窗口的提示。
大多数应用程序都使用选项1。
编辑: 您还可以将状态保存为Enviroment Variable以用于简单方案 见How do I get and set Environment variables in C#?
var alreadyLoggedInAtleastOnce = System.Environment.GetEnvironmentVariable("HasUserLoggedInIntoMyAppAtleastOnce",EnvironmentVariableTarget.User);
if (alreadyLoggedInAtleastOnce != "True")
{
//This is the first login. Set the variable so that it is available the next time user logs in
System.Environment.SetEnvironmentVariable("HasUserLoggedInIntoMyAppAtleastOnce", "True", EnvironmentVariableTarget.User);
MessageBox.Show("This is your help window");
}