【问题标题】:Combobox hint text [duplicate]组合框提示文本 [重复]
【发布时间】:2018-11-10 12:04:05
【问题描述】:

我需要创建一个带有提示文本"Pick a Value" 的组合框,并在开始键入要清除的值时以及当它为 null 时将组合框的文本更改为 Pick Value

在表单加载中

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

这里的问题是光标位置不起作用。它选择了我所有的文本

在 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 = "";
}

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

【问题讨论】:

  • google c# 水印
  • 您可能正在寻找CueBanner。不确定,因为I need....I need..I need 不是问题
  • 重命名我需要如何制作
  • 那么当用户点击组合框时,你想让它清除文本吗?
  • 如果可能的话是的!

标签: c# winforms


【解决方案1】:

你可以在 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-13
    • 1970-01-01
    • 2020-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多