想要在安装后仅运行一次表单

时间:2019-02-18 08:46:43

标签: c# winforms

我有我的第一个表格,它采用文件夹路径并将该值保存在用户属性中并打开第二个表格。我只想在安装后第一次运行第一次表单并保存该值,然后再不想运行该表单。之后,我只希望运行第二个表单。

这是我的第一个表格的代码。

private void button1_Click(object sender, EventArgs e)
{
    folderBrowserDialog1.ShowDialog();
    string Source = folderBrowserDialog1.SelectedPath.ToString();
    Properties.Settings.Default.path = Source;
    Properties.Settings.Default.Save();
    Form1 f = new Form1();
    f.Show();
}

4 个答案:

答案 0 :(得分:1)

  if(string.IsNullOrWhiteSpace(Properties.Settings.Default.path))      
  {
     folderBrowserDialog1.ShowDialog();
     string Source = folderBrowserDialog1.SelectedPath.ToString();
     Properties.Settings.Default.path = Source;
     Properties.Settings.Default.Save();
  }

  Form1 f = new Form1();
  f.Show();

答案 1 :(得分:1)

我尝试了一下,就奏效了。

       static class Program
{
    /// <summary>
    /// The main entry point for the application.
    /// </summary>
    [STAThread]
    static void Main()
    {

        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        //Properties.Settings.Default.Reset();
       if(Properties.Settings.Default.path == "" )

        {
            Application.Run(new FolderSetting());
        }
        else
        {
            Application.Run(new Form1());
        }

    }
}

谢谢。

答案 2 :(得分:0)

您可以为您的应用使用注册表项,以确保第一次表单仅显示一次。在应用程序启动时,创建密钥(如果不存在)。在第一次打开表格时设置键值。在每个按钮上,单击打开基于键值设置的其他表单。

通过在注册表中设置注册表项,如果用户愿意,还可以在应用程序中进行配置以重置该值。

RegistryKey key = Registry.LocalMachine.OpenSubKey("Software",true);

key.CreateSubKey("YourAppName");
key = key.OpenSubKey("YourAppName", true);


key.CreateSubKey("FirstTimeFlag");
key = key.OpenSubKey("FirstTimeFlag", true);

// set the key first time
key.SetValue("FirstTimeFlag", "true");

// get Value of key (probably assign this to App Constant)  
var isFirstTimeLogin = (bool)key.GetValue("FirstTimeFlag");

答案 3 :(得分:0)

在program.cs中编写代码,而不是单击按钮。您应该确定该路径的值是否仅为空白,然后打开文件夹浏览器对话框以选择路径,否则直接运行第二个表单。您的代码应如下所示:

if (Properties.Settings.Default.path.trim() == "")
{
    folderBrowserDialog1.ShowDialog();
    string Source = folderBrowserDialog1.SelectedPath.ToString();
    Properties.Settings.Default.path = Source;
    Properties.Settings.Default.Save();
}
Form1 f = new Form1();
f.Show();

希望它能解决您的问题。