using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace NewApp
{
class AutoComplete
{
List<TextBox> _CompleteObjectList = new List<TextBox>();
Dictionary<string, AutoCompleteStringCollection> _Source = new Dictionary<string, AutoCompleteStringCollection>();
SqlConnection conn = new SqlConnection("Data Source=.;Initial Catalog=TestDB;Integrated Security=True");
public AutoComplete()
{
conn.Open();
SqlCommand cmd = new SqlCommand("select * from AutoComplete", conn);
SqlDataReader read = cmd.ExecuteReader();
while (read.Read())
{
string key = read["name"].ToString();
if (!_Source.ContainsKey(key))
_Source.Add(key, new AutoCompleteStringCollection());
_Source[key].Add(read["str"].ToString());
}
read.Close();
conn.Close();
}
public void AddAll(Control item)
{
for (int i = 0; i < item.Controls.Count; i++)
{
Control var = item.Controls[i];
if (var.GetType().Equals(typeof(TextBox)))
{
Add(var as TextBox);
}
}
}
public void Add(TextBox text)
{
_CompleteObjectList.Add(text);
text.Leave += new EventHandler(text_Leave);
text.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
text.AutoCompleteSource = AutoCompleteSource.CustomSource;
if (!_Source.ContainsKey(text.Name))
{
_Source.Add(text.Name, new AutoCompleteStringCollection());
}
text.AutoCompleteCustomSource = _Source[text.Name];
}
public void Delete(TextBox text)
{
_CompleteObjectList.Remove(text);
}
public void DeleteAll(Control item)
{
for (int i = 0; i < item.Controls.Count; i++)
{
Control var = item.Controls[i];
if (var.GetType().Equals(typeof(TextBox)))
{
Delete(var as TextBox);
}
}
}
public void AutoCompleteClear()
{
foreach (AutoCompleteStringCollection var in _Source.Values)
{ var.Clear(); }
SqlCommand cmd = new SqlCommand("Delete AutoComplete", conn);
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
}
void text_Leave(object sender, EventArgs e)
{
TextBox text = sender as TextBox;
if (text.Text == "")
return;
string key = text.Name;
if (!_Source.ContainsKey(key))
{
_Source.Add(key, new AutoCompleteStringCollection());
}
if (!_Source[key].Contains(text.Text))
{
SqlCommand cmd = new SqlCommand("insert into AutoComplete select '" + key.Replace("'", "''") + "', '" + text.Text.Replace("'", "''") + "'", conn);
conn.Open();
cmd.ExecuteNonQuery();
_Source[key].Add(text.Text);
conn.Close();
}
}
}
}
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。