نحوه استفاده از AutoComplete Textbox در Windows Form

شنبه 25 مهر 1394

در این مقاله قصد داریم نحوه AutoComplete کردن یک Textbox در Windows Form را بررسی کنیم. AutoComplete برای کامل کردن یک کلمه در یک Textbox به صورت خودکار زمانی که یک حرف را وارد کردید به کار می رود . یک راه سریع برای فیلتر کردن و جستجو کردن است.

نحوه استفاده از AutoComplete Textbox در Windows Form

در این مقاله قصد داریم نحوه AutoComplete کردن یک Textbox  در Windows Form  را بررسی کنیم. AutoComplete  برای کامل کردن یک کلمه در یک Textbox  به صورت خودکار زمانی که یک حرف را وارد کردید به کار می رود . یک راه سریع برای فیلتر کردن و جستجو کردن است.

با یک مثال نشان خواهیم داد چگون می توان Textbox  را با خاصیت  Autocomplete پیاده سازی کرد.

در Windows Form application  یک فرم به صورت زیر ایجاد میکنیم.

یک Textbox برای ورودی مورد نظر برای جستجو قرار میدهیم و یک DataGrid که نتیجه جستجو در آن نمایش داده شود.

یک دیتابیس با مشخصات زیر ایجاد کرده و با تعدادی داده آن را پر میکنیم.

قسمت کد به صورت زیر پر می شود.

    using System;  
    using System.Collections.Generic;  
      
    using System.ComponentModel;  
      
    using System.Data;  
      
    using System.Drawing;  
      
    using System.Linq;  
      
    using System.Text;  
      
    using System.Threading.Tasks;  
      
    using System.Windows.Forms;  
      
    using System.Data;  
      
    using System.Data.SqlClient;  
      
    namespace AutoComplete  
      
    {  
      
        public partial class Form1: Form  
      
        {  
      
            AutoCompleteStringCollection coll = new AutoCompleteStringCollection();  
      
            SqlConnection con = new SqlConnection("Data Source=TUNA-PC;Initial Catalog=Employee;User ID=sa;Password=123");  
      
            SqlDataAdapter da;  
      
            public Form1()  
      
            {  
      
                InitializeComponent();  
      
            }  
      
            private void Form1_Load(object sender, EventArgs e)  
      
            {  
      
                Auto(); //calling the auto method.  
      
            }  
      
            //Main logic for autocomplete   
            public void Auto()  
      
            {  
      
                da = new SqlDataAdapter("select Name from tbl_empdetails order by name asc", con);  
      
                DataTable dt = new DataTable();  
      
                da.Fill(dt);  
      
                if (dt.Rows.Count > 0)  
      
                {  
      
                    for (int i = 0; i < dt.Rows.Count; i++)  
      
                    {  
      
                        coll.Add(dt.Rows[i]["Name"].ToString());  
      
                    }  
      
                } else  
      
                {  
      
                    MessageBox.Show("Name not found");  
      
                }  
      
                textBox1.AutoCompleteMode = AutoCompleteMode.Suggest;  
      
                textBox1.AutoCompleteSource = AutoCompleteSource.CustomSource;  
      
                textBox1.AutoCompleteCustomSource = coll;  
      
            }  
      
            public void fillgrid()  
      
            {  
      
                da = new SqlDataAdapter("select * from tbl_empdetails where name='" + textBox1.Text + "'", con);  
      
                DataTable dt = new DataTable();  
      
                da.Fill(dt);  
      
                if (dt.Rows.Count > 0)  
      
                {  
      
                    dataGridView1.DataSource = dt;  
      
      
                }  
      
            }  
      
            private void textBox1_TextChanged(object sender, EventArgs e)  
      
            {  
      
                fillgrid(); //when selecting the searched name then filling its data in datagrid.  
      
            }  
      
      
        }  
      
    }  

برنامه در زمان اجرا با وارد کردن یک حرف به صورت زیر می باشد.

و با انتخاب گزینه مورد نظر به شکل زیر نتیجه نمایش داده می شود.

خاصیت AutoCompleteMode مشخص میکند که چگونه متن در Textbox پیشنهاد داده می شود. می تواند به صورت enumeration ،  append ، Suggest ، SuggestAppend و None تنظیم شود.

Suggest  همه پیشنهاد ها را به صورت لیست کرکره ای نشان می دهد.
Append اولین مقدار پیشنهاد داده شده یا انتخاب شده را نمایش می دهد، بقیه مقادیر با استفاده از arrow key  ها پیمایش می شوند.

SuggestAppend مقادیر پیشنهاد شده را به صورت DropDown نمایش داده و اولین مقدار را در textbox  قرار می دهد.

خاصیت AutoCompleteSource منبع داده های auto complete را تنظیم میکند. می تواند به صورت enumeration ، FileSystem ، HistoryList ،  RecentlyUsedList ، AllUrl ،  AlSystemSources ، FileSystemDirectories، CustomSource  یا None تنظیم شود. در اینجا ما این خاصیت را به صورت  customSource  تنظیم کردیم .

آموزش سی شارپ

برنامه نویسان

نویسنده 3355 مقاله در برنامه نویسان
  • C#.net
  • 4k بازدید
  • 6 تشکر

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید