از کمبوباکس میتونید استفاده کنید. چیزی شبیه کدهای زیر (البته با کلیک موس نمیدونم چرا جواب نمیده ولی با کلیدهای جهت نما انتخاب کنید)
StringBuilder strbLastWord = new StringBuilder();
StringBuilder strbOldText = new StringBuilder();
SqlDataReader sqldr;
private void comboBox1_TextUpdate(object sender, EventArgs e)
{
strbLastWord.Remove(0, strbLastWord.Length);
strbLastWord.Append(comboBox1.Text.Split(' ').Where(w => w != string.Empty && w != null).LastOrDefault());
if (strbLastWord != null)
{
cmd = new SqlCommand("select name from tbl where name like N'" + strbLastWord.ToString() + "%'", con);
comboBox1.Items.Clear();
try
{
if (con.State != ConnectionState.Open)
con.Open();
sqldr = cmd.ExecuteReader();
while (sqldr.Read())
{
comboBox1.Items.Add(sqldr["name"].ToString());
}
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
finally
{
if (con.State != ConnectionState.Closed)
con.Close();
}
}
comboBox1.Select(comboBox1.Text.Length, 0);
comboBox1.DroppedDown = true;
strbOldText.Remove(0, strbOldText.Length);
strbOldText.Append(comboBox1.Text);
}
private void comboBox1_DropDownClosed(object sender, EventArgs e)
{
if (comboBox1.SelectedItem != null)
{
strbOldText.Remove(strbOldText.Length - strbLastWord.Length, strbLastWord.Length);
strbOldText.Append(comboBox1.SelectedItem.ToString ());
comboBox1.Items.Clear();
comboBox1.Text = strbOldText.ToString();
comboBox1.Select(comboBox1.Text.Length, 0);
}
}