本文转载:http://www.cnblogs.com/Johnny_Z/archive/2012/02/12/2348235.html

Winform中的DataGridView数据绑定控件有时会用到ComboBox列,想要显示ComboBox列的内容需要点击两到三次才可以。这使操作变得很麻烦,降低了易用性,尤其是在程序部署在一些小型设备或者触摸屏设备上时,则更为不便。下面介绍两种方法解决这个问题。

首先,我们创建一个Windows应用程序,在窗体中拖拽一个DataGridView控件,命名为dataGridView。要确保该控件的“启用编辑”选项勾选。下面我们动态创建列,以及添加一行数据。写一个函数IniteDGV,在窗体Shown事件中调用函数。

private void IniteDGV(){DataGridViewComboBoxColumn combo = new DataGridViewComboBoxColumn();combo.HeaderText = "comboBox列";combo.Name = "combo";combo.Width = 80;combo.DataSource=(new string[] { "0", "1", "2" });DataGridViewTextBoxColumn textbox = new DataGridViewTextBoxColumn();textbox.HeaderText = "textbox列";textbox.Name = "textbox";textbox.Width = 100;dataGridView.Columns.AddRange(combo, textbox);DataGridViewRow row = new DataGridViewRow();dataGridView.Rows.Add(row);if (dataGridView.Columns.Contains("combo") ){row.Cells["combo"].Value = "0";}}

View Code

好了,以上基本工作做完了,下面说其中一个方法。

方法一:

在DataGridView控件的CellClick事件中添加如下代码:

CellClick事件
private void dataGridView_CellClick(object sender, DataGridViewCellEventArgs e){if (e.RowIndex >= 0 && e.ColumnIndex >= 0){DataGridViewComboBoxColumn combo = dataGridView.Columns[e.ColumnIndex] as DataGridViewComboBoxColumn;if (combo != null)  //如果该列是ComboBox列
                {dataGridView.BeginEdit(false); //结束该列的编辑状态DataGridViewComboBoxEditingControl comboEdite = dataGridView.EditingControl as DataGridViewComboBoxEditingControl;if (comboEdite != null){comboEdite.DroppedDown = true; //展现下拉列表
                    }}DataGridViewTextBoxColumn textbox = dataGridView.Columns[e.ColumnIndex] as DataGridViewTextBoxColumn;if (textbox != null) //如果该列是TextBox列
                {dataGridView.BeginEdit(true); //开始编辑状态
                }}}

View Code

方法二:

在DataGridView的CellEnter事件中添加如下代码:

CellEnter事件
private void dataGridView_CellEnter(object sender, DataGridViewCellEventArgs e){DataGridView dgv = sender as DataGridView;if (dgv != null){if (dgv.Columns[e.ColumnIndex].Name == "combo" &&dgv.Columns[e.ColumnIndex] is DataGridViewComboBoxColumn){SendKeys.Send("{F4}"); //选中ComboBox列时,相当于按了键盘的F4键
                }}}

View Code

DataGridView的DataGridViewComboBoxColumn列点击一次,自动处于编辑状态相关推荐

  1. DataGridView的DataGridViewComboBoxColumn列点击一次

    DataGridView的DataGridViewComboBoxColumn列点击一次 Winform中的DataGridView数据绑定控件有时会用到ComboBox列,想要显示ComboBox列 ...

  2. NSTextField 处于编辑状态时,点击return键 结束编辑,NSButton的return快捷方法不响应

    NSButton 设置快捷键 return, 当 NSTextField 处于编辑状态时, 点击return键 结束编辑,要求不响应button的return快捷方法 attributes inspe ...

  3. js点击使内容变成可编辑状态

    一个有内容的标签,用原生JS点击按钮使内容变成可编辑状态,然后使用保存数据.这个是点击编辑按钮使得标签内容替换为文本域来实现的. 代码如下 <!DOCTYPE html> <html ...

  4. html的表格变成输入框,element+vue表格点击变成输入框(可编辑状态)

    完整html内容 stripe border :data="dataList" @cell-click="tabClick" :row-class-name=& ...

  5. 在VS2008中DataGridView控件里DataGridViewComboBoxColumn列的Bug

    在VS2008中DataGridView控件里DataGridViewComboBoxColumn列的Bug: SQL数据库表(Product)格式: 列:Guid     产品名称    产品规格. ...

  6. 【转】datagridview的checkbox列,当修改checkbox状态时实时获得其准确状态值

    不知道大家有没有这样的经验,当点击或者取消datagridview的checkbox列时,比较难获得其状态是选中还是未选中,进而不好进行其它操作.网上方法有不少可是总是效果差强人意. 下面就列出它的个 ...

  7. C# winform单元格的formatted值的类型错误 DataGridView中CheckBox列运行时候System.FormatException异常

    C# winform单元格的formatted值的类型错误 DataGridView中CheckBox列运行时候System.FormatException异常 参考文章: (1)C# winform ...

  8. C# WinForm DataGridView 给标题列增加序号及格式化某个字段

    DataGridView 给标题列增加序号 private void dataGridView1_DataBindingComplete(object sender, DataGridViewBind ...

  9. datagridview删除第一列空白

    datagridview删除第一列空白: dataGridView1.RowHeadersVisible = false; 删除最后一行空白: 1.dataGridView1.AllowUserToA ...

最新文章

  1. SAP PM 初级系列16 - 设备相关的Asset号
  2. 四种排序(冒泡、插入、递归、选择)
  3. 解决虚拟机vmware安装64位系统“此主机支持 Intel VT-x,但 Intel VT-x 处于禁用状态”的问题...
  4. 使用SGD(Stochastic Gradient Descent)进行大规模机器学习
  5. c++代码小游戏_用Python编写一个打乒乓球小游戏
  6. CodeForces - 1543D1 RPD and Rap Sheet (Easy Version)(异或+交互)
  7. 内温的整体优先效应实验_[心理学复习.doc
  8. Magicodes.Admin.Core开源框架总体介绍
  9. 分页offset格式_MySQL中limit分页查询性能问题分析
  10. t-SNE可视化-Python实现
  11. echarts 大数据可视化
  12. PDF文档签名证书帮助您签署可信的电子合同
  13. vue+springboot通过post请求实现文件下载
  14. c语言实现多目标优化,MOPSO 多目标例子群优化算法
  15. 回顾在江西博微科技工作9个月回顾(吐槽)
  16. JavaMail QQ邮箱发送内容+图片
  17. 什么是面向对象?面向对象的特征?面向对象和面向过程的区别?
  18. 秋季,高级灰这样搭配,怪不得这么潮!
  19. 对称数(自己的算法)
  20. HDOJ--1000A + B Problem

热门文章

  1. Netty详解(二)Linux 网络IO模型
  2. opencv颜色识别java,Opencv颜色识别与追踪
  3. 【CF375D】Trees and Queries——树上启发式合并
  4. js regex var highlight
  5. java中getClass().getResourceAsStream()与getClass().getClassLoader().getResourceAsStream()的区别
  6. 孤荷凌寒自学python第六天 列表的嵌套与列表的主要方法
  7. log4net使用详解
  8. Hibernate 入门小案例
  9. 如何设置listview每个item高度
  10. 数据库查询性能优化之利器—索引(二)