DataGridView的DataGridViewComboBoxColumn列点击一次,自动处于编辑状态
本文轉(zhuǎn)載:http://www.cnblogs.com/Johnny_Z/archive/2012/02/12/2348235.html
Winform中的DataGridView數(shù)據(jù)綁定控件有時(shí)會(huì)用到ComboBox列,想要顯示ComboBox列的內(nèi)容需要點(diǎn)擊兩到三次才可以。這使操作變得很麻煩,降低了易用性,尤其是在程序部署在一些小型設(shè)備或者觸摸屏設(shè)備上時(shí),則更為不便。下面介紹兩種方法解決這個(gè)問題。
首先,我們創(chuàng)建一個(gè)Windows應(yīng)用程序,在窗體中拖拽一個(gè)DataGridView控件,命名為dataGridView。要確保該控件的“啟用編輯”選項(xiàng)勾選。下面我們動(dòng)態(tài)創(chuàng)建列,以及添加一行數(shù)據(jù)。寫一個(gè)函數(shù)IniteDGV,在窗體Shown事件中調(diào)用函數(shù)。
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?
好了,以上基本工作做完了,下面說其中一個(gè)方法。
方法一:
在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); //結(jié)束該列的編輯狀態(tài)DataGridViewComboBoxEditingControl comboEdite = dataGridView.EditingControl as DataGridViewComboBoxEditingControl;if (comboEdite != null){comboEdite.DroppedDown = true; //展現(xiàn)下拉列表 }}DataGridViewTextBoxColumn textbox = dataGridView.Columns[e.ColumnIndex] as DataGridViewTextBoxColumn;if (textbox != null) //如果該列是TextBox列 {dataGridView.BeginEdit(true); //開始編輯狀態(tài) }}} 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列時(shí),相當(dāng)于按了鍵盤的F4鍵 }}} View Code?
總結(jié)
以上是生活随笔為你收集整理的DataGridView的DataGridViewComboBoxColumn列点击一次,自动处于编辑状态的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 在Apache Tomcat 7设置re
- 下一篇: 你在用什么思想编码:事务脚本 OR 面向