我有一個帶有文本框的窗體。我希望文本框顯示示例文本,當我點擊文本框時,文本被清除。做這個的最好方式是什麼?Winform - 覆蓋文本框顯示示例文本並點擊清除
例如該表單顯示文本:192.18.130.44,當用戶單擊該文本框時,文本被清除。
我有一個帶有文本框的窗體。我希望文本框顯示示例文本,當我點擊文本框時,文本被清除。做這個的最好方式是什麼?Winform - 覆蓋文本框顯示示例文本並點擊清除
例如該表單顯示文本:192.18.130.44,當用戶單擊該文本框時,文本被清除。
我想要顯示默認的文本框的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
,你可能想申請更多Font
和ForeColor
相應地或一些自定義油漆,如果需要。最後是使用第三方文本框,這取決於你。
+1,因爲它考慮到用戶是否編輯了文本,因爲大概是當用戶編輯文本時,您不希望在文本點擊時將其清除,然後單擊返回上。 –
@BradRem謝謝:) –
要使其顯示示例文本,請將屬性菜單中的文本屬性設置爲所需的內容,例如, 192.18.120.44
爲了清楚點擊,創建一個點擊事件的方法,並做txtbox1.Text =「」; 您可以通過雙擊文本框來啓動此方法。
使用Enter
事件:
private void textBox_Enter(Object sender, EventArgs e)
{
textBox.Text = null;
}
雖然,除非你希望它永遠明確,我把一些驗證在那裏的!
順便說一句...該鏈接爲CueProvider
看起來也很漂亮,如果你不介意第三方的東西。
當您加載您的winforms時,檢查文本框是否爲空或空。
然後,如果是,則顯示您的示例文本,並將布爾值設置爲true(如果文本不爲空,則爲false)。
然後,寫一個點擊事件上你的textBox,如果要是布爾是假的,以避免清晰的文本框中,如果他包含了其他的東西,你的樣品布爾是真實的,並沒有什麼清除內容..
在文本框上進行點擊事件,清除內容。 –
onClick Event TextBoxName.Text =「」;? – Mark
我建議你使用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