نحوه استفاده از AutoComplete Textbox در Windows Form
شنبه 25 مهر 1394در این مقاله قصد داریم نحوه AutoComplete کردن یک Textbox در Windows Form را بررسی کنیم. AutoComplete برای کامل کردن یک کلمه در یک Textbox به صورت خودکار زمانی که یک حرف را وارد کردید به کار می رود . یک راه سریع برای فیلتر کردن و جستجو کردن است.
در این مقاله قصد داریم نحوه 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 تنظیم کردیم .
- C#.net
- 4k بازدید
- 6 تشکر