Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在整个Windows窗体应用程序生命周期中仅运行窗体一次_C#_Winforms - Fatal编程技术网

C# 在整个Windows窗体应用程序生命周期中仅运行窗体一次

C# 在整个Windows窗体应用程序生命周期中仅运行窗体一次,c#,winforms,C#,Winforms,在我的项目中,我想在用户第一次安装我的软件时显示一个用户指南。因此,对于仅一次,我想(在开始时)显示一个窗口,其中给出了一些方向,以便用户能够在第一时间了解如何使用我的软件。在用户观看该窗口(用户指南)后,此窗口将不再显示。 我想使用像userguid.cs这样的表单。这将在我的应用程序生命周期中的主窗口乞讨中显示一次。 N:B:例如,如果用户重新启动计算机并再次运行应用程序,它将不会像以前那样再次显示userguide窗口 我该怎么做??有人能告诉我怎么做吗?只需维护一个标志,它将帮助您存储用

在我的项目中,我想在用户第一次安装我的软件时显示一个用户指南。因此,对于
仅一次
,我想(在开始时)显示一个窗口,其中给出了一些方向,以便用户能够在第一时间了解如何使用我的软件。在用户观看该窗口(用户指南)后,此窗口将不再显示。 我想使用像
userguid.cs
这样的表单。这将在我的应用程序生命周期中的主窗口乞讨中显示一次。 N:B:例如,如果用户重新启动计算机并再次运行应用程序,它将不会像以前那样再次显示userguide窗口
我该怎么做??有人能告诉我怎么做吗?

只需维护一个标志,它将帮助您存储用户指南是否已显示

该标志可以是存储在应用程序目录中的文件,或者如果您有数据库,则可以将布尔值存储在数据库中

然后调用该函数,在加载表单时或在需要的任何位置显示用户指南

public void Form1_Load() {
   displayUserGuide();
}
并且,在函数displayUserGuide中查看是否设置了标志

public void displayUserGuide() {
  //Return, if the form has already been displayed.
  if(File.Exists("UGUID")) return;
  userGuide.Show();
  File.Create("UGUID");
}
您只需在整个应用程序中的任何位置调用函数
displayUserGuide()
。该函数将确保表单仅显示一次

这样,您可以一次性显示Windows窗体应用程序


希望这有帮助

只需维护一个标志,它将帮助您存储用户指南是否已显示

该标志可以是存储在应用程序目录中的文件,或者如果您有数据库,则可以将布尔值存储在数据库中

然后调用该函数,在加载表单时或在需要的任何位置显示用户指南

public void Form1_Load() {
   displayUserGuide();
}
并且,在函数displayUserGuide中查看是否设置了标志

public void displayUserGuide() {
  //Return, if the form has already been displayed.
  if(File.Exists("UGUID")) return;
  userGuide.Show();
  File.Create("UGUID");
}
您只需在整个应用程序中的任何位置调用函数
displayUserGuide()
。该函数将确保表单仅显示一次

这样,您可以一次性显示Windows窗体应用程序


希望这有帮助

您可以在应用程序路径中创建一个虚拟文件,以确保是否显示userguide

比如说,

在加载UserGuide.cs之前,请检查以下内容:

if(!File.Exists("UserGuideShown"))
{

  UserGuide.Show();
  File.Create("UserGuideShown");
}

下次加载应用程序时,它将检查该文件,该文件将如图所示存在。因此它将跳过显示。

您可以在应用程序路径中创建一个虚拟文件,以确保是否显示userguide

比如说,

在加载UserGuide.cs之前,请检查以下内容:

if(!File.Exists("UserGuideShown"))
{

  UserGuide.Show();
  File.Create("UserGuideShown");
}

下次加载应用程序时,它将检查该文件,该文件将如图所示存在。因此它将跳过显示。

一种方法是显示用户指南并增加一个标志变量,下次检查该变量是否为1或0时,跳过显示该指南。您的问题是什么?展示形式?保存设置?阅读设置?有许多方法可以实现您的目标。您可以保留注册表中提到的标志值a和。一种方法是显示该用户指南并递增标志变量,下次检查该变量是否为1或0,跳过显示该指南。您的问题是什么?展示形式?保存设置?阅读设置?有很多方法可以实现您的目标。您可以保留注册表中提到的标志值A和。但我希望在用户的整个生命周期中运行一次。例如,如果用户重新启动计算机并再次运行应用程序,它将不会像以前那样再次显示userguide窗口。当您运行一次时,将显示用户指南,并在app文件夹中创建文件。下次运行应用程序时,由于文件已存在,因此不会显示表单。这绝对是针对用户的生命周期。但我希望在用户的整个生命周期中运行一次。例如,如果用户重新启动计算机并再次运行应用程序,则不会像以前那样再次显示userguide窗口。当您运行一次时,将显示user guide(用户指南),并在app文件夹中创建文件。下次运行应用程序时,由于文件已存在,因此不会显示表单。这绝对是针对用户的生命周期。我更愿意在用户特定的应用程序设置中维护这一点,而不是通过将文件写入磁盘。这不仅是一个更优雅的解决方案,而且您的方法很快就会与UAC和其他基于权限的限制相冲突。普通用户不应该也不应该拥有对应用程序目录的写入权限。我更希望在用户特定的应用程序设置中维护此权限,而不是将文件写入磁盘。这不仅是一个更优雅的解决方案,而且您的方法很快就会与UAC和其他基于权限的限制相冲突。普通用户不应该也不应该拥有对应用程序目录的写入权限。