C# ComboBox下拉框?qū)崿F(xiàn)搜索方式
C# ComboBox下拉框?qū)崿F(xiàn)搜索
步驟一
這個(gè)是加載窗口時(shí)候的部分代碼,可忽視
// 這個(gè)是窗口加載時(shí)候的部分代碼,可以忽略 // ComboBox 指定數(shù)據(jù)源 (DeptDs是一個(gè)全局變量) cbDept.DataSource = DeptDs.Tables[0]; // 指定 下拉框 顯示內(nèi)容的值 cbDept.ValueMember = "id"; // 指定 下拉框 顯示的內(nèi)容 cbDept.DisplayMember = "name"; // 指定當(dāng)前選中的是哪個(gè)一個(gè) cbDept.SelectedValue = ProtalInformation.OrgID;
步驟二
在 ComboBox 下拉框添加一個(gè)鍵盤事件

步驟三
實(shí)現(xiàn)下拉框搜索,對(duì)應(yīng) 步驟二 鍵盤事件
// 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 是個(gè)全局變量
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;
// 賦值選項(xiàng)的內(nèi)容,變來變了去不好看
cbDept.SelectedValue = "";
// 將輸入的內(nèi)容重新賦值給下拉框
cbDept.Text = str;
// 這個(gè)是輸入的光標(biāo)位置,要不要會(huì)跑到最左邊
cbDept.SelectionStart = str.Length;
}總結(jié)
本來想弄個(gè)GIF圖片展示一下實(shí)現(xiàn)后的效果的,但是數(shù)據(jù)不方便公開,希望大家多多諒解。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
c# 使用Task實(shí)現(xiàn)非阻塞式的I/O操作
這篇文章主要介紹了c# 使用Task實(shí)現(xiàn)非阻塞式的I/O操作,幫助大家更好的理解和學(xué)習(xí)c# 編程語言,感興趣的朋友可以了解下2020-11-11
asp.net core mvc權(quán)限控制:在視圖中控制操作權(quán)限
本文主要介紹了asp.net core mvc權(quán)限控制:在視圖中控制操作權(quán)限。具有很好的參考價(jià)值,下面跟著小編一起來看下吧2017-02-02
C#在WinForm中使用WebKit傳遞js對(duì)象實(shí)現(xiàn)與網(wǎng)頁(yè)交互的方法
這篇文章主要介紹了C#在WinForm中使用WebKit傳遞js對(duì)象實(shí)現(xiàn)與網(wǎng)頁(yè)交互的方法,涉及針對(duì)WebBroswer控件及WebKit控件的相關(guān)使用技巧,需要的朋友可以參考下2016-03-03
C# Windows API應(yīng)用之基于GetDesktopWindow獲得桌面所有窗口句柄的方法
這篇文章主要介紹了C# Windows API應(yīng)用之基于GetDesktopWindow獲得桌面所有窗口句柄的方法,結(jié)合實(shí)例形式分析了GetDesktopWindow函數(shù)用于獲取窗口句柄的具體使用方法與相關(guān)注意事項(xiàng),需要的朋友可以參考下2016-08-08

