簡體   English   中英

應用程序重新啟動后如何運行命令

[英]How to run a command after application restarted

我試圖重新啟動我的應用程序並運行命令。 例如,當用戶單擊他想要的語言時,該語言將被檢查為true,而忽略另一個被檢查為= false的語言。 完成此操作后,應用程序將重新啟動並檢查重新啟動后用戶檢查的語言並獲取該語言。

   public Application()
    {
        InitializeComponent();

        check_language();
        languages();
    }

    private void lang_english_Click(object sender, EventArgs e)
    {

        // problem *******

        Application.Restart();

        // if i remove this is works ok.
        // when app is restarted it is like starting it so i dont think
        // this works at all. is there an other way to read this?
        // maybe with a bool?

        lang_english.Checked = true;
        //Ignore
        lang_portuguese.Checked = false;

        MessageBox.Show("Language was set to English.\r\nCliente will now restart.", "Language", MessageBoxButtons.OK, MessageBoxIcon.Information);
        check_language();
    }

    private void lang_portuguese_Click(object sender, EventArgs e)
    {
        lang_portuguese.Checked = true;
        //Ignore
        lang_english.Checked = false;

        MessageBox.Show("Language was set to Portuguese.\r\nCliente will now restart.", "Language", MessageBoxButtons.OK, MessageBoxIcon.Information);
        check_language();
    }

    private void languages()
    {
        //Languages
        }
    }

    private void check_language()
    {
        if (lang_english.Checked == true)
        {
            languages(); //Get the languages

            //Ignore
            lang_portuguese.Checked = false;
        }
        else if (lang_portuguese.Checked == true)
        {
            languages(); //Get the languages

            //Ignore
            lang_english.Checked = false;
        }
    }

首先,我將選擇的語言保存在app.config文件中,您可以在啟動時檢查配置並檢查適當的語言。

其次,重新啟動應用程序,我將使用以下兩個選項之一:

1)Application.Restart()

2)啟動第二個應用程序,然后結束第一個應用程序。 看到這篇文章: 重新啟動WinForms應用程序

您可能還想研究在運行時更改語言在運行更改語言

重新啟動SAME應用程序控件內的應用程序后,您正在檢查語言。 您應該在文件中編寫和閱讀語言,以便可以在其中檢查它:

private void lang_portuguese_Click(object sender, EventArgs e)
{
new System.IO.StreamWriter(new System.IO.FileStream("File.ext", System.IO.FileMode.Create)).Write("Portuguese");
}

private void check_language()
{
String lang = new System.IO.StreamReader("YouFile.ext").ReadLine();
    if (lang == "English")
    {
        languages(); //Get the languages

        //Ignore
        lang_portuguese.Checked = false;
    }
    else if (lang == "Portuguese")
    {
        languages(); //Get the languages

        //Ignore
        lang_english.Checked = false;
    }
}

這是示例。 您應該使用驗證進行寫入和讀取並創建流的實例,因此在完成讀取/寫入后將其關閉。 這就是我可以給你的想法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM