2014-12-02 70 views
0

我無法找到答案。 我有幾個文本框,如果用戶進入/離開他們,我檢查他是否改變了一些東西,下面的代碼工作。使用功能編輯多個文本框的文本

private void txtRegNazov_Enter(object sender, EventArgs e) 
{ 
    if (txtRegNazov.Text == "n/a") 
    {txtRegNazov.Text = "";} 
} 

private void txtRegNazov_Leave(object sender, EventArgs e) 
{ 
    if (txtRegNazov.Text == "") 
    {txtRegNazov.Text = "n/a";} 
} 

我想創建一個功能類似

public void ClearFieldDataByEnter() 
{ 
    thisHlep.text = ""; 
} 

public void FieldDataByleave() 
{ 
    thisHelp.text = "n/a"; 
} 

然後在每場活動將是這樣的:

private void txtRegNazov_Enter(object sender, EventArgs e) 
{ 
    thisHelp.Name = name of this txtBox; 
    ClearFieldDataByEnter(); 
} 

這僅僅是我想要的一個簡單的例子 ...我正在尋找principe ...而我仍然是C#的新手。

謝謝

+0

謝謝兩位。我不知道「發件人」......我還是小白。 Sjips,謝謝你的全部功能。 – 2014-12-02 14:05:26

回答

1

的rember的「發件人」,在這種情況下,是實際文本框。

TextBox txtSender = (TextBox)sender; 
+0

的確,您可以通過分配已發送的「發件人」.Text值,對每個需要執行此操作的文本框使用相同的事件。 – gmiley 2014-12-02 13:43:35

0

可以使用sender參數,就像這樣:

private void txtRegNazov_Enter(object sender, EventArgs e) 
{ 
    ClearFieldDataByEnter(sender); 
} 

private void txtRegNazov_Leave(object sender, EventArgs e) 
{ 
    FieldDataByleave(sender); 
} 

public void ClearFieldDataByEnter(object text) 
{ 
    textBox = text as TextBox; 
    if (textbox == null) 
     return; 
    if (textbox.Text == "n/a") 
    { 
     textbox.Text = String.Empty; 
    } 
} 

public void FieldDataByleave(object text) 
{ 
    textBox = text as TextBox; 
    if (textbox == null) 
     return; 
    if (String.IsNullOrEmpty(textbox.Text)) 
    { 
     textbox.Text = "n/a"; 
    } 
}