C# ComboBox下拉框?qū)崿F(xiàn)搜索方式
更新時間:2024年12月28日 09:18:03 作者:Name.Gy
文章介紹了如何在加載窗口時實現(xiàn)一個功能,并在ComboBox下拉框中添加鍵盤事件以實現(xiàn)搜索功能,由于數(shù)據(jù)不方便公開,作者表示理解并希望得到大家的指教
C# ComboBox下拉框?qū)崿F(xiàn)搜索
步驟一
這個是加載窗口時候的部分代碼,可忽視
// 這個是窗口加載時候的部分代碼,可以忽略 // ComboBox 指定數(shù)據(jù)源 (DeptDs是一個全局變量) cbDept.DataSource = DeptDs.Tables[0]; // 指定 下拉框 顯示內(nèi)容的值 cbDept.ValueMember = "id"; // 指定 下拉框 顯示的內(nèi)容 cbDept.DisplayMember = "name"; // 指定當前選中的是哪個一個 cbDept.SelectedValue = ProtalInformation.OrgID;
步驟二
在 ComboBox 下拉框添加一個鍵盤事件
步驟三
實現(xiàn)下拉框搜索,對應 步驟二 鍵盤事件
// KeyUp 事件 private void cbDept_KeyUp(object sender, KeyEventArgs e) { // 如果是回車的話,就選中 if (e.KeyCode == Keys.Enter) { cb.DroppedDown = false; return; } // 判斷如果是某些按鍵,就不觸發(fā) if (e.KeyCode == Keys.ShiftKey || e.KeyCode == Keys.CapsLock || e.KeyCode ==Keys.Back || e.KeyCode == Keys.Down || e.KeyCode == Keys.Up) { return; } // 獲取需要篩選的內(nèi)容 string str = cbDept.Text; // 從datatable中篩選,再次聲明一下 DeptDs 是個全局變量 DataRow[] drs = DeptDs.Tables[0].Select($"name like '%{str}%'"); // 克隆表 DataTable dt = DeptDs.Tables[0].Clone(); // 將數(shù)據(jù)添加到表中 foreach (DataRow dr in drs) { dt.Rows.Add(dr.ItemArray); } // 展開下拉列表 cbDept.DroppedDown = true; // 賦值給下拉框 cbDept.DataSource = dt; // 賦值選項的內(nèi)容,變來變了去不好看 cbDept.SelectedValue = ""; // 將輸入的內(nèi)容重新賦值給下拉框 cbDept.Text = str; // 這個是輸入的光標位置,要不要會跑到最左邊 cbDept.SelectionStart = str.Length; }
總結(jié)
本來想弄個GIF圖片展示一下實現(xiàn)后的效果的,但是數(shù)據(jù)不方便公開,希望大家多多諒解。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
asp.net core mvc權(quán)限控制:在視圖中控制操作權(quán)限
本文主要介紹了asp.net core mvc權(quán)限控制:在視圖中控制操作權(quán)限。具有很好的參考價值,下面跟著小編一起來看下吧2017-02-02C#在WinForm中使用WebKit傳遞js對象實現(xiàn)與網(wǎng)頁交互的方法
這篇文章主要介紹了C#在WinForm中使用WebKit傳遞js對象實現(xiàn)與網(wǎng)頁交互的方法,涉及針對WebBroswer控件及WebKit控件的相關(guān)使用技巧,需要的朋友可以參考下2016-03-03C# Windows API應用之基于GetDesktopWindow獲得桌面所有窗口句柄的方法
這篇文章主要介紹了C# Windows API應用之基于GetDesktopWindow獲得桌面所有窗口句柄的方法,結(jié)合實例形式分析了GetDesktopWindow函數(shù)用于獲取窗口句柄的具體使用方法與相關(guān)注意事項,需要的朋友可以參考下2016-08-08