none
如何同時執行兩個Form? RRS feed

  • 問題

  • Form1      Form2

    功能鍵       功能鍵

    ----------------------

    請問我想要在執行時,就可開啟Form1+Form2,並可同時使用功能鍵

    要如何辦得到呢?


    • 已編輯 rr8 2016年6月2日 下午 05:13
    2016年6月2日 下午 05:13

解答

  • pause只是舉例...你要自己定義像是

    public void pause()

    {

    //這邊放你要暫停的code  

      timer1.Stop();

    }

    private void button2_Click(object sender, EventArgs e)

    {

        pause();

        另一邊的Form也要定義,才能從Fm2呼叫到

       然後另一邊的Form中click事件呼叫這邊Form1的pause();

    }

    如果你的兩個form沒有一定要分開移動,用tihs大大的作法會比較好!

    因為如果要相互控制UI顯示的話,可能會有Thread的問題

    • 已編輯 Andy_Lin_1 2016年6月3日 上午 03:42
    • 已標示為解答 rr8 2016年6月3日 上午 06:51
    2016年6月3日 上午 03:29

所有回覆

  • 你在 Form1 的 Load 事件委派函式中呼叫 Form2 的 Show 方法應該就會造成同時開啟的感覺了

    甚麼叫 "同時使用功能鍵" ?


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    2016年6月2日 下午 10:33
    版主
  • Dear 前輩

    目前已解決,用這方法同時啟動兩個form

    ------------

    在form1 宣告

    public Form2 Fm2=new Form2();
    並且在
     public Form1()
         {
         InitializeComponent();
         Fm2.FM1 = this; //加上這2行
         Fm2.Show();
         }
    在form2宣告
    public Form1 FM1 = null;

    -----------------------------

    同時使用功能鍵意思是,只要其中一個按暫停,兩個都會同時執行暫停的方法如何寫呢?TKS~

    -----------

    Form1  Form2

    計數       計數   

    暫停       暫停

    ----------------------


    • 已編輯 rr8 2016年6月3日 上午 01:47
    2016年6月3日 上午 01:46
  • 在兩個Form中加上public的暫停

    接收click事件的時候執行兩邊的暫停

    假設在Fm1的暫停click事件中

    {

        pause();

        if(Fm2 != null){

            Fm2.pause();

        }

    }類似這樣

    另一邊也是如此



    • 已編輯 Andy_Lin_1 2016年6月3日 上午 02:08
    2016年6月3日 上午 02:04
  • 這樣的功能可以考慮將一個Form用SplitContainer製作成兩個分隔畫面, 於各別的分隔畫面中加入一個Button, 再讓兩個分隔畫面中的Button共用事件處理程序, 要同時計數或暫停會比較容易做
    2016年6月3日 上午 02:18
  • 感謝您,請問一下pause加入後,pause出現錯誤

        private void button2_Click(object sender, EventArgs e)
            {
                timer1.Stop();
                 if(Fm2 != null)
                  Fm2.pause();
                 
            }

    'WindowsFormsApplication10.Form2' does not contain a definition for 'pause' and no extension method 'pause' accepting a first argument of type 'WindowsFormsApplication10.Form2' could be found (are you missing a using directive or an assembly reference?)

    說pause要加到using嗎?

    2016年6月3日 上午 03:02
  • pause只是舉例...你要自己定義像是

    public void pause()

    {

    //這邊放你要暫停的code  

      timer1.Stop();

    }

    private void button2_Click(object sender, EventArgs e)

    {

        pause();

        另一邊的Form也要定義,才能從Fm2呼叫到

       然後另一邊的Form中click事件呼叫這邊Form1的pause();

    }

    如果你的兩個form沒有一定要分開移動,用tihs大大的作法會比較好!

    因為如果要相互控制UI顯示的話,可能會有Thread的問題

    • 已編輯 Andy_Lin_1 2016年6月3日 上午 03:42
    • 已標示為解答 rr8 2016年6月3日 上午 06:51
    2016年6月3日 上午 03:29
  • 感謝Andy大大,因為需求要雙開,已解決

    請教

    Form1     Form2

    目前計數      目前計數

    離開           離開

    ----------------------

    離開後再開啟,要如何記住目前的計數數字呢?

    有查到的是

    1."開始計數鍵"的 event handler 取當前的 數字 去 繼續數

    2.設置儲存,(目前用這個沒有功能)

    private void FormMain_FormClosing(object sender, FormClosingEventArgs e)
    {
        // Copy window location to app settings
        Settings.Default.WindowLocation = this.Location;

        // Copy window size to app settings
        if (this.WindowState == FormWindowState.Normal)
        {
            Settings.Default.WindowSize = this.Size;
        }
        else
        {
            Settings.Default.WindowSize = this.RestoreBounds.Size;
        }

        // Save settings
        Settings.Default.Save();
    }

    2016年6月3日 上午 06:03
  • 看到你在另一篇有發問,有版主與許多人回答你,

    從你的code並沒有看到你要存的數字在哪

    那篇幾種方式都蠻簡易的,event handler取得數字應該是指在程式沒有關閉的時候取得

    若是在程式關閉時,就將數字存入資料庫或文件(.ini, .xml......等)

    開啟程式的時候先去讀取你存的地方,讀不到就給預設值

    2016年6月3日 上午 06:32
  • 另一個問題你不是已經有開新討論串了?

    請回到該討論串繼續討論,不要在一個討論串內問離題的問題。


    強力監督SQL Injection問題!!

      • 小朱的技術隨手寫:http://www.dotblogs.com.tw/regionbbs/
      • 雲端學堂Facebook: http://www.facebook.com/studyazure

    2016年6月3日 上午 06:59
    版主