C# 当文本为空时,使用Textbox Textchanged事件模拟facebook搜索时出现问题
我试着模仿Facebook每次在搜索框中输入一个密钥时的搜索方式。我目前面临的问题是,当我想清除搜索框或试图手动删除所有文本时。它仍将触发默认文本(搜索)作为搜索条目。非常感谢您的帮助,谢谢C# 当文本为空时,使用Textbox Textchanged事件模拟facebook搜索时出现问题,c#,textbox,textchanged,C#,Textbox,Textchanged,我试着模仿Facebook每次在搜索框中输入一个密钥时的搜索方式。我目前面临的问题是,当我想清除搜索框或试图手动删除所有文本时。它仍将触发默认文本(搜索)作为搜索条目。非常感谢您的帮助,谢谢 private void SearchTB_TextChanged(object sender, TextChangedEventArgs e) { int keyword_length = ((TextBox)sender).Text.Length; if (keyword_len
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");
}
}
}
正如我所看到的,您正在使用WPF(没有标记,但名称空间属于WPF),因此您可以在XAML中这样做:
<Grid>
<TextBox x:Name="SearchTB" />
<TextBlock x:Name="SearchBlock" Text="Search" IsHitTestVisible="False"
VerticalAlignment="Center" />
</Grid>
因此,您正在隐藏textblock,它由于
ishitestvisible=“False”
而不可单击,并且仅当搜索文本为空时才可见。我已编辑了您的标题。请看“”,其中的共识是“不,他们不应该”。@JohnSaunders感谢您的更正。道歉。
if (keyword_length == 0)
{
SearchBlock.Visibility = Visibility.Visible;
myButton.Text = "Cancel";
}
else
{
SearchBlock.Visibility = Visibility.Hidden;
myButton.Text = "Clear";
}