[問題] dataGridView 中textBox 的自動完成

看板C_Sharp (C#)作者 (彈彈的哀傷)時間11年前 (2013/10/21 22:02), 編輯推噓0(002)
留言2則, 2人參與, 最新討論串1/1
問題是這樣的 我有個datagridview 裡面我加入一個DataGridViewTextBoxColumn 我要在這個column上輸入的時候可以有自動完成的功能 我主要是參考下面這個網站做的 http://ppt.cc/0I1w 初始如下: DataGridViewTextBoxColumn prodNameColumn = new DataGridViewTextBoxColumn(); prodNameColumn.Name = "NAME"; DataGridView.Columns.Add(prodNameColumn); 然後 EditingControlShowing 的event中 int column = ShipDataGridView.CurrentCell.ColumnIndex; string colName = ShipDataGridView.Columns[column].Name; if(colName.Equals("NAME")) { TextBox tb = e.Control as TextBox; if (tb != null) { AutoCompleteStringCollection collection = new AutoCompleteStringCollection(); collection.Add("大家"); collection.Add("大象"); collection.Add("飛機"); collection.Add("飛鳥"); tb.AutoCompleteMode = AutoCompleteMode.Suggest; tb.AutoCompleteCustomSource = collection; tb.AutoCompleteSource = AutoCompleteSource.CustomSource; } } 問題是 我打大的時候應該要出現大家跟大象可以選 可是並沒有 可是如果"大" 是用複製貼上的就會出現自動完成選項 或者是我打大以後 按個空白再用backspace刪掉空格也會出現自動完成 這個只有在中文會出現這個情形,如果自動完成的內容為英文就不會有問題 請問一下有沒有人碰過這個問題? 該如何解決呢? 我希望我直接輸入"大"這個字後就可以直接出現自動完成的選單 謝謝! /*******************************************/ 目前用很爛的解決方法 tb.TextChanged += tb_TextChanged; void tb_TextChanged(object sender, EventArgs e) { SendKeys.Send(" {BACKSPACE}"); ((TextBox)sender).TextChanged -= tb_TextChanged; } 請問有沒有更好的寫法呢? 謝謝 /*******************************************/ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.192.220.64 ※ 編輯: gundan 來自: 118.163.30.37 (10/22 14:14)

10/22 15:06, , 1F
我測一下有出來啊,你中文是用啥輸入法,有完成選字嗎?
10/22 15:06, 1F

10/22 15:21, , 2F
用嘸蝦米 打完字按空格字就出來 不用選字 ...
10/22 15:21, 2F
文章代碼(AID): #1IPJG9ac (C_Sharp)
文章代碼(AID): #1IPJG9ac (C_Sharp)