مانند شکل یه لیست باکس بنداز زیر تکست ، لیست باکس رو پیشفرض hide کن
دیتا تیبلت رو بایند که لیست ویو
در رویداد تکست چنج تکست باکس جستجو رو بزن، و شرط بزار اکه دیتا تیبل خالی نبود، لیست باکس show بشه
در رویداد keyDown تکست باکس وقتی اینتر خورد، و لیست باکس هم hide نبود، روی لیست باکس فکوس بشه
در رویداد keyDown لیست باکس وقتی اینتر خورد و همچنین رویداد دابل کلیک ، متن انتخاب شده لیست باکس رو بگیر (هرکاری دلت میخاد بکن) و لیست باکس رو hideکن
SqlConnection conn;
SqlDataAdapter da;
private void Form1_Load(object sender, EventArgs e)
{
listBox1.Hide();
conn = new SqlConnection("server=.;database=test ; trusted_connection=true;");
da = new SqlDataAdapter("",conn);
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
string sql = "select * from tbl1 where col1 like '%{0}%'";
sql = string.Format(sql, textBox1.Text);
da.SelectCommand.CommandText = sql;
DataTable dt = new DataTable();
da.Fill(dt);
listBox1.DisplayMember = "col1";
listBox1.DataSource = dt;
if (dt.Rows.Count > 0)
{
listBox1.Show();
}
else
{
listBox1.Hide();
}
}
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
if (listBox1.Visible)
{
listBox1.Focus();
}
}
}
private void listBox1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
textBox1.Text = listBox1.Text;
listBox1.Hide();
}
}
private void listBox1_DoubleClick(object sender, EventArgs e)
{
textBox1.Text = listBox1.Text;
listBox1.Hide();
}
در کدهای بالا به محض اینکه دوتا اینتر بزنی نتیجه کار رو میبینی