2014-02-10 87 views
0

我希望我的文本框中已經有產品名稱的文本在我點擊它時自動消失,並且我可以輸入我想要的文本框。清除文本框中的文本框點擊它

  • 產品名稱必須始終存在,而沒有在文本框
  • 我也想,如果我在文本框單擊第二次我不會失去什麼,我已輸入任何文字。

請讓我知道如何在不丟失手動輸入的數據的情況下做到這一點,並且我可以在文本框中沒有任何內容輸入時獲取默認文本。

回答

1

爲什麼要使用一些額外的軟件,而不是使用自己的頭腦來編碼?這裏是簡單的代碼來實現這一任務

第一次使用這樣的:

public bool txSearch = false; 

然後在你的文字點擊事件代碼:

private void txtSearch_Click(object sender, EventArgs e) 
{ 
    txSearch = true; 

    if (txtSearch.Text == "Product Name") 
    { 
     if (txSearch == true) 
     { 
      txtSearch.Text = ""; 
     }     
    } 
} 

這將清除字段中的文本框,當你點擊文本,現在當您的文本框中沒有任何內容時寫回產品名稱,並且您正在離開事件時在文本框上執行此代碼:

private void txtSearch_Leave(object sender, EventArgs e) 
{ 
    if (txtSearch.Text == "") // here you can also use txtSearch.Text != "Poduct Name", but it could affect your search code possibly 
    { 
     txtSearch.Text = "Product Name"; 
    } 
} 
0

你應該考慮使用第三方控件,有大量的WatermarkTextbox控件可用。我更喜歡從xceed了一句:我前一段時間由我自己寫了這個行爲http://wpftoolkit.codeplex.com/wikipage?title=WatermarkTextBox

,使用AdornerDecorator奠定在TextBox,約束IsFocused物業我的視圖模型,並提出了標誌ShouldShowWatermark中,我結合的可見性AdornerDecorator

1

該行爲被稱爲水印。您可以:

與水印
  1. 使用TextBox控件從庫如WPF extended toolkit
  2. 使用樣式和證明了這blog post
  3. 附加的行爲做一些技巧來達到同樣的行爲與實現它你的自我更簡單的代碼,例如如圖所示codeproject post