2015-09-07 109 views
0

我一直堅持這幾個小時,我只是無法讓我的頭圍繞它...我很新的編碼。使用設置並從form2獲取form1

我有2種形式

Form1中有一個空字符串變量

Form1中有一個開放的按鈕,打開窗口2

窗體2有多個複選框

窗體2有一個確定按鈕

單擊form2 ok按鈕時,它將設置我想要從form2傳遞給form1的變量。該變量是複選框。檢查哪些設置了if語句。

按下ok後,form2被關閉。

問題是我如何獲得傳遞給form1的form2中的字符串。

有一些解釋的工作示例會很棒。

我已經試過得到並設置,但並不真正瞭解它。

+0

檢查:http://stackoverflow.com/a/1559821/1209239 – egvrcn

回答

0

創建在Form1一個公共靜態變量

您可以使用靜態瓦爾,這將是最簡單的解決方案,歸檔你的目標,但也有類似的構造,容器,事件等

public static string var1 
{ 
    get { return En; } 
    set { En = value; } 
} 

public static string var2 
{ 
    get { return var2; } 
    set { var2 = value; } 
} 
其他方式

而在其他形式的

private void button1_Click(object sender, EventArgs e) 
{ 
    Form1 F1 = new Form1(); 
    Form1.var1 = textBox1.Text; 
    Form1.var2 = textBox2.Text; 
} 

請注意,靜態變量只有一次的一類存在。所以如果你有多個實例,並且你把靜態變量改爲一個,那麼這個改變也會影響所有其他的實例。

+0

謝謝你,我會給這一槍 – Nezz

0

好的,所以我把它歸類到最後。

我在使用get和set時遇到了問題,但當我有更多的經驗時,我會離開它,但現在,這是我做任何其他人需要做的事情。

同樣,我在做什麼是這樣的:

Form2上選擇一個複選框,然後按確定和如果statment運行,並檢查該複選框被選中,並設置基於這樣的驗證檢查的字符串varaible,然後form2關閉。

在form1上,我剛剛加載了checkBox.Checked Text屬性並將其設置爲一個變量。 這是我的代碼。

day2 in form2是一個全局字符串變量,run1在form1中也是如此。

所有的複選框修飾符都設置爲在form2上公開以使form1能夠讀取它們,即時通訊不知道這是否是好的做法,但我仍然是一個新手。

窗體2(從這裏發送變量)

// 
    //OK BUTTON 
    // 
    public void okBtn_Click(object sender, EventArgs e) 
    { 
     if (cbMonday.Checked) 
     { 
      day = "Monday"; 
      MessageBox.Show("BackUp Will Run Every " + day + " ", "Scheduled", MessageBoxButtons.OK); 
      this.Close(); 
     } 
     else if (cbTuesday.Checked) 
     { 
      day = "Tuesday"; 
      MessageBox.Show("BackUp Will Run Every " + day + " ", "Scheduled", MessageBoxButtons.OK); 
      this.Close(); 
     } 
     else if (cbWednesday.Checked) 
     { 
      day = "Wednesday"; 
      MessageBox.Show("BackUp Will Run Every " + day + " ", "Scheduled", MessageBoxButtons.OK); 
      this.Close(); 
     } 
     else if (cbThursday.Checked) 
     { 
      day = "Thursday"; 
      MessageBox.Show("BackUp Will Run Every " + day + " ", "Scheduled", MessageBoxButtons.OK); 
      this.Close(); 
     } 
     else if (cbFriday.Checked) 
     { 
      day = "Friday"; 
      MessageBox.Show("BackUp Will Run Every " + day + " ", "Scheduled", MessageBoxButtons.OK); 
      this.Close(); 
     } 
     else if (cbSaturday.Checked) 
     { 
      day = "Saturday"; 
      MessageBox.Show("BackUp Will Run Every " + day + " ", "Scheduled", MessageBoxButtons.OK); 
      this.Close(); 
     } 
     else if (cbSunday.Checked) 
     { 
      day = "Sunday"; 
      MessageBox.Show("BackUp Will Run Every " + day + " ", "Scheduled", MessageBoxButtons.OK); 
      this.Close(); 
     } 
     else if (string.IsNullOrWhiteSpace(day)) 
     { 
      MessageBox.Show("You have not selected any days", "Woops"); 
     } 

    } 

Form1中(這裏設置變量)

   private void scheduleBtn_Click(object sender, EventArgs e) 
    { 
     Schedule frm = new Schedule(); 
     frm.ShowDialog(); 
     if(frm.cbMonday.Checked) 
     { 
      runDay = "Monday"; 
     } 
     else if(frm.cbTuesday.Checked) 
     { 
      runDay = "Tuesday"; 
     } 
     else if(frm.cbWednesday.Checked) 
     { 
      runDay = "Wednesday"; 
     } 
     else if(frm.cbThursday.Checked) 
     { 
      runDay = "Thursday"; 
     } 
     else if(frm.cbFriday.Checked) 
     { 
      runDay = "Friday"; 
     } 
     else if(frm.cbSaturday.Checked) 
     { 
      runDay = "Saturday"; 
     } 
     else if(frm.cbSunday.Checked) 
     { 
      runDay = "Sunday"; 
     } 
     dayLbl.Text = runDay; 
    } 
相關問題