Combobox提示文字

时间:2018-01-23 22:04:46

标签: c# winforms

我需要使用提示文本"Pick a Value"创建一个组合框,并在开始输入要清除的值时,并且当它为null时将组合框的文本更改为选择值

在表单加载

comboBox1.Text = "Pick a Value";
comboBox1.SelectedIndex = -1;

这里的问题是,cusrsor位置不起作用。它选择我的所有文字

在TextChanged

private void comboBox1_TextChanged(object sender, EventArgs e)
{
   if (comboBox1.Text.Length == 0)
   {
      comboBox1.Text = "Pick a Value";
   }
}

我需要这个代码只有当用户使用backspase清除Combobox时才能正常工作,如果我在鼠标点击中使用ComboBox.Text = ""则不需要;

例如

private void comboBox1_MouseClick(object sender, MouseEventArgs e)
{
   //This conflicts the comboBox1_TextChanged event
   comboBox1.Text = "";
}

最后,如果用户开始输入,我需要一个清除文本的代码。

1 个答案:

答案 0 :(得分:0)

你可以在TextChanged事件上使用isNullOrWhiteSpace

像这样的东西

if(string.IsNullOrWhiteSpace(combobox.Text))
{
      combobox.Text = "Pick a value";
}

但是如果你想获得所需的效果,你应该使用字体颜色和不透明度,或类似水印。

水印链接: https://msdn.microsoft.com/en-us/library/bb613590(v=vs.100).aspx

此外,这可能会有所帮助:Watermark for Textbox