DataGridViewButtonCell增加事件处理

查看MSDN帮助文档:

DataGridViewButtonCell 类是用于显示类似按钮的用户界面的专用类型的 DataGridViewCell

DataGridViewButtonColumn 专门用于保存此类型单元格的列类型。若要设置现有 DataGridViewButtonCell 之后的列中的单元格模式,请将此列的 CellTemplate 属性设置为该单元格。默认情况下,将 CellTemplate 初始化为新的 DataGridViewButtonCell

若要响应用户单击按钮,请处理 DataGridView.CellClickDataGridView.CellContentClick 事件。在事件处理程序中,可以使用 DataGridViewCellEventArgs.ColumnIndex 属性来确定单击是否发生在按钮列中。可以使用 DataGridViewCellEventArgs.RowIndex 属性来确定单击是否发生在特定按钮单元格中。

列的与单元格相关的属性是模板单元格的具有相似名称的属性的包装。更改模板单元格的属性值只会影响那些在更改之后添加的基于该模板的单元格。但是,更改列的与单元格相关的属性值将更新模板单元格和列中所有其他单元格,必要时还将刷新列显示。

 1 private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
2 {
3 if (e.ColumnIndex != -1)
4 {
5 if (this.dataGridView1.Columns[e.ColumnIndex].Name == "ColColor")//颜色显示按钮事件
6 {
7 //颜色
8 ColorDialog colordlg = new ColorDialog();
9 if (colordlg.ShowDialog(this)==DialogResult.OK)
10 {
11
12 DataGridViewCellStyle dgvCellStyle=new DataGridViewCellStyle() ;
13 dgvCellStyle.BackColor=colordlg.Color;
14 ((DataGridViewButtonCell)this.dataGridView1.Rows[e.RowIndex].Cells["ColColor"]).Style= dgvCellStyle;
15 }
16 }
17 }
18 }

 在给DataGridViewComboBoxCell增加事件是可以在EditingControlShowing 事件以将事件处理程序附加。

可以处理此事件,以便在单元格进入编辑模式时对编辑控件执行自定义初始化。 要自定义控件的显示特征,请设置 DataGridViewEditingControlShowingEventArgs.CellStyle 属性返回的对象的属性。 要执行其他初始化,请将 DataGridViewEditingControlShowingEventArgs.Control 属性的值强制转换为特定的控件类型并直接访问成员。 例如,可以处理 EditingControlShowing 事件以将事件处理程序附加到编辑控件的事件中。

注意——————————————————————————————————————————————

DataGridView 控件一次承载一个编辑控件,并且只要单元格类型在编辑之间不发生更改,就重新使用该编辑控件。 将事件处理程序附加到编辑控件时,因此必须采取预防措施以避免多次附加同一处理程序。 要避免出现此问题,请在将处理程序附加到事件之前从该事件中移除该处理程序。 如果处理程序已附加到事件,这样将防止重复,但在其他情况下将不起任何作用。 有关更多信息,请参见 DataGridViewComboBoxEditingControl 类概述中的代码示例。

参考文献:

1.http://www.cnblogs.com/freeliver54/archive/2008/03/06/1093569.html

2.http://msdn.microsoft.com/zh-cn/library/system.windows.forms.datagridviewbuttoncell(v=VS.90)

3.http://www.cnblogs.com/lhxhappy/archive/2008/12/02/1345377.html

 

你可能感兴趣的:(datagridview)