[問題] dataGridView 中textBox 的自動完成
問題是這樣的 我有個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
C_Sharp 近期熱門文章
PTT數位生活區 即時熱門文章