我在窗體中有一個文本框。在表單加載事件上,我想我的textbox.text =「輸入名稱」,但它應該顯示爲如果單擊文本框,文本框的文本會消失。 附加的圖像將幫助你理解我的問題:)c#窗口中的文本框形式
回答
要麼你在谷歌搜索找到相同的網站,或者你正在複製一個[先前的答案](http://stackoverflow.com/questions/578193/watermark-system-windows-forms-textbox-using- C-尖銳)。如果是後者,請確保在答案中引用作者的帖子。 – 2011-12-19 20:00:40
@BradChristie好點。我用這個帖子標記了這個q,不妨把它張貼在這裏。 – 2011-12-19 20:02:56
此外,我在這裏是另一個[使用WndProc](http://stackoverflow.com/questions/2539903/sendmessage-vs-wndproc)(如果作者不介意)。 – 2011-12-19 20:04:26
使用TextBox.ForeColor並將其更改爲灰色和進入/離開文本框的事件來改變顏色和刪除文字
這裏是一個解決方案,沒有DllImport
用法
/// <summary>
/// inspired by this forum entry: http://social.msdn.microsoft.com/Forums/en-US/winforms/thread/10f75954-6d14-4926-a02d-98649653b9c8/
/// Watermark TextBox in winform
/// </summary>
public class WatermarkTextBox : TextBox
{
private string watermarkText;
private Color watermarkColor;
private Color foreColor;
private bool isTextBoxEmpty;
public WatermarkTextBox()
{
this.WatermarkText = "Watermark Text...";
this.WatermarkColor = Color.FromKnownColor(KnownColor.Silver);
this.Enter += onEnter;
this.Leave += onLeave;
}
[Browsable(true)]
public new Color ForeColor
{
get { return this.foreColor; }
set
{
if (value == this.foreColor)
{
return;
}
this.foreColor = value;
if (!this.isTextBoxEmpty)
{
base.ForeColor = value;
}
}
}
[Browsable(true)]
public Color WatermarkColor
{
get { return this.watermarkColor; }
set
{
if (value == this.watermarkColor)
{
return;
}
this.watermarkColor = value;
if (this.isTextBoxEmpty)
{
base.ForeColor = this.watermarkColor;
}
}
}
[Browsable(true)]
public string WatermarkText
{
get { return this.watermarkText; }
set
{
if (value == this.watermarkText)
{
return;
}
this.watermarkText = value;
if (base.Text.Length == 0)
{
this.isTextBoxEmpty = true;
base.Text = this.watermarkText;
base.ForeColor = this.watermarkColor;
}
this.Invalidate();
}
}
public override string Text
{
get { return this.isTextBoxEmpty ? string.Empty : base.Text; }
set
{
if (string.IsNullOrEmpty(value))
{
this.isTextBoxEmpty = true;
base.ForeColor = this.watermarkColor;
base.Text = this.watermarkText;
}
else
{
this.isTextBoxEmpty = false;
base.ForeColor = this.foreColor;
base.Text = value;
}
}
}
private void onEnter(object sender, EventArgs e)
{
if (this.isTextBoxEmpty)
{
this.isTextBoxEmpty = false;
base.ForeColor = this.foreColor;
base.Text = string.Empty;
}
}
private void onLeave(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(base.Text))
{
this.isTextBoxEmpty = true;
base.ForeColor = this.watermarkColor;
base.Text = this.watermarkText;
}
else
{
this.isTextBoxEmpty = false;
}
}
}
[水印System.Windows.Forms.TextBox使用C#]的
- 1. 全球窗口形式比。本地或私人窗口形式
- 2. C#窗口形式的datagridview細胞顯示文本
- 3. C#從另一種形式更改模式窗體上的文本框文本
- 4. 形狀窗口形式uwp與c#
- 5. 窗口形式的安全C#
- 6. 將窗口標題更改爲Objective-C文本框中的窗口標題?
- 7. 組合框不工作窗口形式
- 8. c#如何打印沒有窗口窗體邊框的窗體形式
- 9. 標籤中的文本以窗口形式顯示不正確
- 10. 使用另一個窗口填充窗口中的文本框
- 11. C#窗口中的文本框中的不可選水印文本代碼
- 12. C#在文本框中禁用默認窗口上下文欄
- 13. 在窗口形式Ninject實現 - C#
- 14. C#:PDF文件在新窗口中打開..而不是形式
- 15. 在win32 API中調整窗口大小的文本框c
- 16. Python中的新文本模式窗口
- 17. 窗口計時器在文本框中
- 18. WPF從主窗口文本框中
- 19. 不同的窗口形式
- 20. 無法在彈出式窗口中選擇WPF文本框中的文本
- 21. 從不是我的窗口的文本框中獲取文本c#
- 22. 使用C#Windows窗體將文本從一個文本框傳遞到另一個文本框形式
- 23. C# - 如何禁用窗口形式的上下文菜單?
- 24. 不能移動光標在窗口中使用鼠標的文本框兒童形式C#
- 25. gtkmm中的窗形窗口
- 26. 如何在Objective-C中使用文本框彈出窗口?
- 27. 基於形式文本的圖像彈出窗口
- 28. 文本彈出窗口澄清面向用戶的形式
- 29. 從c#窗口窗體中的文本文件導入cookie
- 30. 得到WPF窗口上下文形式
可能重複(http://stackoverflow.com/questions/578193/watermark-system-windows-forms-textbox-using-c-sharp) – Caleb 2011-12-20 04:38:54