Хотите запустить первую форму только один раз после установки - PullRequest
0 голосов
/ 18 февраля 2019

У меня есть первая форма, которая берет путь к папке и сохраняет это значение в свойствах пользователя и открывает вторую форму.Я хочу запускать первую форму только в первый раз после установки и сохранить это значение и не хочу запускать эту форму после этого.После этого я хочу запустить только вторую форму.

Это код моей первой формы.

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 голосов
/ 18 февраля 2019

Напишите код в 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();

Надеюсь, это решит вашу проблему.

0 голосов
/ 18 февраля 2019

Я попробовал это, и это сработало ..

       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());
        }

    }
}

Спасибо.

0 голосов
/ 18 февраля 2019

Вы можете использовать запись реестра для своего приложения, чтобы убедиться, что форма в первый раз отображается только один раз.При запуске приложения создайте ключ, если он не существует.Задайте значение ключа при первом открытии формы.При каждом нажатии кнопки открывайте другую форму, основанную на заданном значении ключа.

Установив ключ в реестре, вы также можете задать в приложении конфигурацию для сброса значения, если пользователь желает это сделать.

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");
0 голосов
/ 18 февраля 2019
  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();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...