日期:2014-05-18  浏览次数:21140 次

C# WinForm中DataGridView自动匹配拼音简码问题
小弟想实现这样一个功能:
  在DataGridView中某列cells中按键输入拼音时,同步自动打开(数据库中有预生成的拼音简码字段pyjm)匹配该输入拼音的下拉列表资料可供选择。
  例如:输入“qd”,则下拉框中同步显示“QDPJ 青岛啤酒”,“QDCS 青岛纯生”,“QDSS 青岛山水”等
  上述拼音简码和汉字是分两个字段存储的,大侠只要帮演示出匹配拼音简码字段的部分即可。


------解决方案--------------------
按键触发事件时,向数据库用like 查询出匹配的绑定到下拉框。

如果数据不是挺多。
那就一次查出来。放在DataSet或DataTabel中在跟条件过滤掉。

------解决方案--------------------
需要自己在数据库里做映射表,A映射B
如果输入A则B显示
------解决方案--------------------
最简单的方法就是在keydown事件里查询数据库
------解决方案--------------------
datagridview是没有单元格的keydown事件的,所以要添加一些代码拉处理:
C# code

   private DataGridViewTextBoxEditingControl fff;

        private void rowMergeView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
        {
            fff = (DataGridViewTextBoxEditingControl)e.Control;
            fff.KeyDown+=new KeyEventHandler(fff_KeyDown);            
        }
        private void fff_KeyDown(object sender, KeyEventArgs e)
        {           
            /*在这里面写你处理数据的代码;建议先把数据放到dataview中。然后再用dataview。dataview进行筛选*/
        }

------解决方案--------------------
上面注释部分有点错误
C# code

 /* 在这里面写你处理数据的代码;建议先把数据放到dataview中。然后再用dataview.RowFilter属性进行筛选*/