DataGridView的DataGridViewComboBoxColumn列点击一次
生活随笔
收集整理的這篇文章主要介紹了
DataGridView的DataGridViewComboBoxColumn列点击一次
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
DataGridView的DataGridViewComboBoxColumn列點擊一次
2 {
3 DataGridViewComboBoxColumn combo = new DataGridViewComboBoxColumn();
4 combo.HeaderText = "comboBox列";
5 combo.Name = "combo";
6 combo.Width = 80;
7 combo.DataSource=(new string[] { "0", "1", "2" });
8
9 DataGridViewTextBoxColumn textbox = new DataGridViewTextBoxColumn();
10 textbox.HeaderText = "textbox列";
11 textbox.Name = "textbox";
12 textbox.Width = 100;
13
14 dataGridView.Columns.AddRange(combo, textbox);
15 DataGridViewRow row = new DataGridViewRow();
16 dataGridView.Rows.Add(row);
17
18
19
20 if (dataGridView.Columns.Contains("combo") )
21 {
22 row.Cells["combo"].Value = "0";
23 }
24
25 }
2 {
3 if (e.RowIndex >= 0 && e.ColumnIndex >= 0)
4 {
5 DataGridViewComboBoxColumn combo = dataGridView.Columns[e.ColumnIndex] as DataGridViewComboBoxColumn;
6 if (combo != null) //如果該列是ComboBox列
7 {
8 dataGridView.BeginEdit(false); //結束該列的編輯狀態
9 DataGridViewComboBoxEditingControl comboEdite = dataGridView.EditingControl as DataGridViewComboBoxEditingControl;
10 if (comboEdite != null)
11 {
12 comboEdite.DroppedDown = true; //展現下拉列表
13 }
14 }
15
16
17 DataGridViewTextBoxColumn textbox = dataGridView.Columns[e.ColumnIndex] as DataGridViewTextBoxColumn;
18 if (textbox != null) //如果該列是TextBox列
19 {
20 dataGridView.BeginEdit(true); //開始編輯狀態
21 }
22 }
23 }
2 {
3 DataGridView dgv = sender as DataGridView;
4
5 if (dgv != null)
6 {
7 if (dgv.Columns[e.ColumnIndex].Name == "combo" &&
8 dgv.Columns[e.ColumnIndex] is DataGridViewComboBoxColumn)
9 {
10 SendKeys.Send("{F4}"); //選中ComboBox列時,相當于按了鍵盤的F4鍵
11 }
12 }
13 }
Winform中的DataGridView數據綁定控件有時會用到ComboBox列,想要顯示ComboBox列的內容需要點擊兩到三次才可以。這使操作變得很麻煩,降低了易用性,尤其是在程序部署在一些小型設備或者觸摸屏設備上時,則更為不便。下面介紹兩種方法解決這個問題。
首先,我們創建一個Windows應用程序,在窗體中拖拽一個DataGridView控件,命名為dataGridView。要確保該控件的“啟用編輯”選項勾選。下面我們動態創建列,以及添加一行數據。寫一個函數IniteDGV,在窗體Shown事件中調用函數。
代碼段 1 private void IniteDGV()2 {
3 DataGridViewComboBoxColumn combo = new DataGridViewComboBoxColumn();
4 combo.HeaderText = "comboBox列";
5 combo.Name = "combo";
6 combo.Width = 80;
7 combo.DataSource=(new string[] { "0", "1", "2" });
8
9 DataGridViewTextBoxColumn textbox = new DataGridViewTextBoxColumn();
10 textbox.HeaderText = "textbox列";
11 textbox.Name = "textbox";
12 textbox.Width = 100;
13
14 dataGridView.Columns.AddRange(combo, textbox);
15 DataGridViewRow row = new DataGridViewRow();
16 dataGridView.Rows.Add(row);
17
18
19
20 if (dataGridView.Columns.Contains("combo") )
21 {
22 row.Cells["combo"].Value = "0";
23 }
24
25 }
?
好了,以上基本工作做完了,下面說其中一個方法。
方法一:
在DataGridView控件的CellClick事件中添加如下代碼:
CellClick事件 1 private void dataGridView_CellClick(object sender, DataGridViewCellEventArgs e)2 {
3 if (e.RowIndex >= 0 && e.ColumnIndex >= 0)
4 {
5 DataGridViewComboBoxColumn combo = dataGridView.Columns[e.ColumnIndex] as DataGridViewComboBoxColumn;
6 if (combo != null) //如果該列是ComboBox列
7 {
8 dataGridView.BeginEdit(false); //結束該列的編輯狀態
9 DataGridViewComboBoxEditingControl comboEdite = dataGridView.EditingControl as DataGridViewComboBoxEditingControl;
10 if (comboEdite != null)
11 {
12 comboEdite.DroppedDown = true; //展現下拉列表
13 }
14 }
15
16
17 DataGridViewTextBoxColumn textbox = dataGridView.Columns[e.ColumnIndex] as DataGridViewTextBoxColumn;
18 if (textbox != null) //如果該列是TextBox列
19 {
20 dataGridView.BeginEdit(true); //開始編輯狀態
21 }
22 }
23 }
?
方法二:
在DataGridView的CellEnter事件中添加如下代碼:
CellEnter事件 1 private void dataGridView_CellEnter(object sender, DataGridViewCellEventArgs e)2 {
3 DataGridView dgv = sender as DataGridView;
4
5 if (dgv != null)
6 {
7 if (dgv.Columns[e.ColumnIndex].Name == "combo" &&
8 dgv.Columns[e.ColumnIndex] is DataGridViewComboBoxColumn)
9 {
10 SendKeys.Send("{F4}"); //選中ComboBox列時,相當于按了鍵盤的F4鍵
11 }
12 }
13 }
?
posted on 2012-02-12 19:43 Johnny_Z 閱讀(...) 評論(...) 編輯 收藏轉載于:https://www.cnblogs.com/Johnny_Z/archive/2012/02/12/2348235.html
總結
以上是生活随笔為你收集整理的DataGridView的DataGridViewComboBoxColumn列点击一次的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【团队建设问题】项目管理方面
- 下一篇: JavaScript设计的漂亮的玫瑰花