2013-06-21 63 views
0

我有一個帶有文本框的窗體。我希望文本框顯示示例文本,當我點擊文本框時,文本被清除。做這個的最好方式是什麼?Winform - 覆蓋文本框顯示示例文本並點擊清除

例如該表單顯示文本:192.18.130.44,當用戶單擊該文本框時,文本被清除。

+1

在文本框上進行點擊事件,清除內容。 –

+0

onClick Event TextBoxName.Text =「」;? – Mark

+0

我建議你使用WaterMark文本框。這裏有一些樣品。 [CueProvider](http://www.codeproject.com/Articles/27853/CueProvider)[WaterMark-TextBox-For-Desktop-Applications](http://www.codeproject.com/Articles/27849/WaterMark-TextBox- For-Desktop-Applications-Using-C) – JSJ

回答

2

我想要顯示默認的文本框的Text,如果它只是集中沒有任何編輯,默認Text會當它失去焦點這樣的恢復:

string initText = "Love .NET"; 
bool edited; 
//This code line is just for demonstrative purpose, it should be placed such as in the Form constructor 
textBox1.Text = initText; 
private void textBox1_KeyPress(object sender, KeyPressEventArgs e) 
{ 
    edited = !char.IsControl(e.KeyChar); 
} 

private void textBox1_Enter(object sender, EventArgs e) 
{ 
    if(!edited) textBox1.Clear(); 
} 

private void textBox1_Leave(object sender, EventArgs e) 
{ 
    if (!edited) textBox1.Text = initText; 
} 

如果你想使文字看起來像watermark,你可能想申請更多FontForeColor相應地或一些自定義油漆,如果需要。最後是使用第三方文本框,這取決於你。

+0

+1,因爲它考慮到用戶是否編輯了文本,因爲大概是當用戶編輯文本時,您不希望在文本點擊時將其清除,然後單擊返回上。 –

+0

@BradRem謝謝:) –

1

要使其顯示示例文本,請將屬性菜單中的文本屬性設置爲所需的內容,例如, 192.18.120.44

爲了清楚點擊,創建一個點擊事件的方法,並做txtbox1.Text =「」; 您可以通過雙擊文本框來啓動此方法。

2

使用Enter事件:

private void textBox_Enter(Object sender, EventArgs e) 
{ 
    textBox.Text = null; 
} 

雖然,除非你希望它永遠明確,我把一些驗證在那裏的!

順便說一句...該鏈接爲CueProvider看起來也很漂亮,如果你不介意第三方的東西。

0

當您加載您的winforms時,檢查文本框是否爲空或空。

然後,如果是,則顯示您的示例文本,並將布爾值設置爲true(如果文本不爲空,則爲false)。

然後,寫一個點擊事件上你的textBox,如果要是布爾是假的,以避免清晰的文本框中,如果他包含了其他的東西,你的樣品布爾是真實的,並沒有什麼清除內容..