首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 實現百度搜尋框下拉提示效果

     編輯:關於C語言
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();
            }
        }
    }
}
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved