如果用户开始在文本框中键入值更改为 input else 如果用户未键入任何内容值更改为 C# 中的特定字符串
if user start typing in textbox value change to input else if user didn't type any thing value change to an specific string in C#
我有一个列表视图并创建了一个文本框来在该列表中搜索主题!
搜索一切正常!
但问题是我希望我的搜索框是这样的:
起初 Searchbox.Text="Search ..." 如果用户开始在该搜索框中输入内容,请更改为该关键字! else(if) 搜索框为空 Searchbox.Text 再次更改为 "Search ..."!
也许有点复杂!但我试了 1-2 个小时!做不到!
我用过定时器、checkboxchange 事件、布尔值……!但做不到! :(
请帮忙!
*我的搜索框名称是 textbox1。
我测试的一些代码:
private void textBox1_TextChanged(object sender, EventArgs e)
{
string str = textBox1.Text;
/*
if (!keywordentered_bool)
{
textBox1.Text = "";
}
*/
if (str != "")
{
//Doing Search operations!
search_bool = true;
}
else
{//Doing Search operations!
search_bool = true;
// keywordentered_checkbox.Checked = true;
Searchtextbox_Timer.Interval = 100;
Searchtextbox_Timer.Enabled = true;
Searchtextbox_Timer.Tick += Searchtextbox_Timer_Tick;
//textBox2.Visible = false;
}
}
else
{
if (search_bool)
{
listView1.Items.Clear();
label1.Visible = false;
listView1.Items.AddRange(Originalplaylist_list.ToArray());
if (!search_bool)
{
listView1.Items[MusicLogindex_list[MusicLogindex_list.Count - 1]].ForeColor = Color.Cyan;
}
else if (search_bool)
{//Doing Search operations
search_bool = false;
Searchtextbox_Timer.Interval = 100;
Searchtextbox_Timer.Enabled = true;
Searchtextbox_Timer.Tick += Searchtextbox_Timer_Tick;
//textBox2.Visible = true;
// keywordentered_checkbox.Checked = false;
}
}
void Searchtextbox_Timer_Tick(object sender, EventArgs e)
{
if (!search_bool)
{
textBox2.Visible = true;
textBox2.Location = textBox1.Location;
//textBox1.Text = "Search ...";
//textBox1.ForeColor = Color.Gray;
//textBox1.Font = new Font(textBox1.Font, FontStyle.Italic);
}
else
{
textBox2.Visible = false;
// textBox1.Text = "";
// textBox1.ForeColor = Color.Black;
// textBox1.Font = new Font(textBox1.Font, FontStyle.Regular);
}
Searchtextbox_Timer.Enabled = false;
//throw new NotImplementedException();
}
这只是伪代码,但概念是存在的,您需要实现用于搜索的文本更改事件,您可以在事件处理程序中进行其他更改。
Textbox myTxtbx = new Textbox();
myTxtbx.Text = "Enter text here...";
myTxtbx.OnFocus += OnFocus.EventHandle(RemoveText);
myTxtbx.LoseFocus += LoseFocus.EventHandle(AddText);
public RemoveText(object sender, EventArgs e)
{
myTxtbx.Text = "";
}
public AddText(object sender, EventArgs e)
{
if(string.IsNullorEmpty(myTxtbx.Text))
myTxtbx.Text = "Enter text here...";
}
这是一个动态文本框控件的示例,您可以将这些事件添加到您的控件中并使用相同的代码使其工作。
或者你可以使用这个插件
您可以使用的另一个插件
希望对您有所帮助。
感谢@Frebin Francis 我的问题解决了!
我从这个 link TextBox With Placeholder 下载了源代码
并将其添加到我的项目中!然后将其添加到我的表格中,是的! :)
我有一个列表视图并创建了一个文本框来在该列表中搜索主题! 搜索一切正常! 但问题是我希望我的搜索框是这样的: 起初 Searchbox.Text="Search ..." 如果用户开始在该搜索框中输入内容,请更改为该关键字! else(if) 搜索框为空 Searchbox.Text 再次更改为 "Search ..."! 也许有点复杂!但我试了 1-2 个小时!做不到! 我用过定时器、checkboxchange 事件、布尔值……!但做不到! :( 请帮忙! *我的搜索框名称是 textbox1。 我测试的一些代码:
private void textBox1_TextChanged(object sender, EventArgs e)
{
string str = textBox1.Text;
/*
if (!keywordentered_bool)
{
textBox1.Text = "";
}
*/
if (str != "")
{
//Doing Search operations!
search_bool = true;
}
else
{//Doing Search operations!
search_bool = true;
// keywordentered_checkbox.Checked = true;
Searchtextbox_Timer.Interval = 100;
Searchtextbox_Timer.Enabled = true;
Searchtextbox_Timer.Tick += Searchtextbox_Timer_Tick;
//textBox2.Visible = false;
}
}
else
{
if (search_bool)
{
listView1.Items.Clear();
label1.Visible = false;
listView1.Items.AddRange(Originalplaylist_list.ToArray());
if (!search_bool)
{
listView1.Items[MusicLogindex_list[MusicLogindex_list.Count - 1]].ForeColor = Color.Cyan;
}
else if (search_bool)
{//Doing Search operations
search_bool = false;
Searchtextbox_Timer.Interval = 100;
Searchtextbox_Timer.Enabled = true;
Searchtextbox_Timer.Tick += Searchtextbox_Timer_Tick;
//textBox2.Visible = true;
// keywordentered_checkbox.Checked = false;
}
}
void Searchtextbox_Timer_Tick(object sender, EventArgs e)
{
if (!search_bool)
{
textBox2.Visible = true;
textBox2.Location = textBox1.Location;
//textBox1.Text = "Search ...";
//textBox1.ForeColor = Color.Gray;
//textBox1.Font = new Font(textBox1.Font, FontStyle.Italic);
}
else
{
textBox2.Visible = false;
// textBox1.Text = "";
// textBox1.ForeColor = Color.Black;
// textBox1.Font = new Font(textBox1.Font, FontStyle.Regular);
}
Searchtextbox_Timer.Enabled = false;
//throw new NotImplementedException();
}
这只是伪代码,但概念是存在的,您需要实现用于搜索的文本更改事件,您可以在事件处理程序中进行其他更改。
Textbox myTxtbx = new Textbox();
myTxtbx.Text = "Enter text here...";
myTxtbx.OnFocus += OnFocus.EventHandle(RemoveText);
myTxtbx.LoseFocus += LoseFocus.EventHandle(AddText);
public RemoveText(object sender, EventArgs e)
{
myTxtbx.Text = "";
}
public AddText(object sender, EventArgs e)
{
if(string.IsNullorEmpty(myTxtbx.Text))
myTxtbx.Text = "Enter text here...";
}
这是一个动态文本框控件的示例,您可以将这些事件添加到您的控件中并使用相同的代码使其工作。
或者你可以使用这个插件
您可以使用的另一个插件
希望对您有所帮助。
感谢@Frebin Francis 我的问题解决了! 我从这个 link TextBox With Placeholder 下载了源代码 并将其添加到我的项目中!然后将其添加到我的表格中,是的! :)