【问题标题】:Problems emulating facebook search using Textbox Textchanged Event when text is empty文本为空时使用文本框 Textchanged 事件模拟 facebook 搜索的问题
【发布时间】:2014-03-28 03:58:13
【问题描述】:

我试图模仿 Facebook 每次在搜索框中输入密钥时的搜索方式。我目前面临的问题是,当我想清除搜索框或尝试手动删除所有文本时。它仍然会触发默认文本(搜索)作为搜索条目。非常感谢您的帮助,谢谢!

private void SearchTB_TextChanged(object sender, TextChangedEventArgs e)
  {
    int keyword_length = ((TextBox)sender).Text.Length;


    if (keyword_length == 0)
    {
      SearchTB.Text = "Search";
      myButton.Text = "Cancel";
     }

     //  When user starts to enter in text
     if (keyword_length > 0)
       {
         SearchTB.Text = "";
         myButton.Text = "Clear";
       }

     // Search when 3 chars has been entered into Searchbox
     if (keyword_length > 2)
       {
         keyword = ((TextBox)sender).Text;
         SearchBook(this.keyword);
        }
    }

private void myButton_Tap(object sender, System.Windows.Input.GestureEventArgs e)
    {
        if (myButton.Text == "Clear")
        {
           SearchTB.Text = "Search";
           myButton.Text = "Cancel";
        }
        else
        {
            if (cancelButton.Text == "Cancel")
            {
              Debug.WriteLine("This is cancel button");
            }
        }
    }

【问题讨论】:

标签: c# textbox textchanged


【解决方案1】:

正如我所见,您使用的是 WPF(没有标签,但命名空间属于 WPF),所以您可以在 XAML 中这样做:

<Grid>
    <TextBox x:Name="SearchTB" />
    <TextBlock x:Name="SearchBlock" Text="Search" IsHitTestVisible="False"
               VerticalAlignment="Center" />
</Grid>

在代码中

if (keyword_length == 0)
{
  SearchBlock.Visibility = Visibility.Visible;
  myButton.Text = "Cancel";
}
else
{
  SearchBlock.Visibility = Visibility.Hidden;
  myButton.Text = "Clear";
}

因此,您正在隐藏文本块,因为 IsHitTestVisible="False" 而无法点击,并且仅在搜索文本为空时可见。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多