2017-01-04 21 views
0

我總共有4種形式(Form1,Form2,Form3,Form4)。
3個按鈕(表格1具有2(Button1的,將Button2),形式2具有1(將Button3))如何使用if-else語句檢查按鈕點擊歷史記錄? C#

我的情況如下:

Form1引線的兩個按鈕來form2但具有不同的標籤輸入。 我想要做的是當我的按鈕3被點擊,如果其他循環將確定按鈕導致(form3,form4)的形式。如果button1被點擊,按鈕3將導致form3,否則button3將導致form4。

即時通訊不知道我應該在提問這個問題時應該包含哪些代碼和哪些部分,因此我假設我只需要輸入代碼。

這是button1的代碼:

public void DIModuleButton_Click(object sender, System.EventArgs e) 
{ 
    // MessageBox.Show("TEST"); 
    alloDI(); 
    FormSerial frm = new FormSerial(); 
    frm.MyProperty = ALL; 
    frm.Show(); 
} 

public void alloDI() 
{ 
    ALL = "DI"; 
} 

這是BUTTON2代碼:

public void DOModuleButton_Click(object sender, EventArgs e) 
{ 
    alloDO(); 
    FormSerial frm = new FormSerial(); 
    frm.MyProperty = ALL; 
    frm.Show(); 
} 

public void alloDO() 
{ 
    ALL = "DO"; 
} 
+0

你知道你可以重命名你的按鈕嗎?在設計器中選擇一個控件,在屬性中將其名稱更改爲有意義的東西。它不一定是按鍵與數字 –

+0

@ M.kazemAkhgary他們都有自己的名字,我說他們在button1和button2的問題,以便於理解:) –

回答

1

一個簡單的解決方案可以是使用布爾標誌,因爲你只有2個按鈕之間進行區分。

將一個新的bool屬性放入您的第二個窗體中,就像您已經使用MyProperty一樣。

在窗體2:

public bool Button1_pressed { get; set; } 

在按鈕的Click事件,你會進行相應的設置:

public void DIModuleButton_Click(object sender, System.EventArgs e) 
{ 
    // MessageBox.Show("TEST"); 
    alloDI(); 
    FormSerial frm = new FormSerial(); 
    frm.MyProperty = ALL; 
    frm.Button1_pressed = true; 
    frm.Show(); 
} 

第二,你會設置爲false

,當你的第三個按鈕現在你可以檢查這個變量。

如果您有更多然後2個按鈕,我會建議使用enum和開關的情況下,檢查不同的情況:

屬性應該是這樣的:

public ButtonSource MyButton_Clicked { get; set; } 

// here your enum 
public enum ButtonSource 
{ 
    button1, 
    button2, 
    button3, 
    button4 
} 

和開關案例:

switch (MyButton_Clicked) 
{ 
    case ButtonSource.button1: 
     break; 
    case ButtonSource.button2: 
     break; 
    case ButtonSource.button3: 
     break; 
    case ButtonSource.button4: 
     break; 
    default: 
     break; 
} 
+0

如果我需要區分3按鈕而不是2?按鈕1將導致形式3,按鈕2將導致形式4,並且另一個附加按鈕「* button3 *」(形式1)導致形式5。 –

+0

@MuhammedNizamBinKamarudeen不幸的是,因爲'bool'只能是'false'的'true',對於更多的按鈕我寫了一個不同的建議。檢查我的編輯 –

+0

生病嘗試一下,然後回覆你!非常感謝! –

相關問題