DataGridViewButtonColumn
来源:互联网 发布:优畅网络是真的吗 编辑:程序博客网 时间:2024/06/16 23:26
.Net的DataGridView控件中,提供了一种列的类型,叫 DataGridViewButtonColumn ,这种列类型是展示为一个 按钮,可以给button赋予相应的text,并且,此button可以用来做处理事件的判断依据。
在正式开始介绍使用方法之前,我们先要进行一个概念性的说明:
DataGridViewButtonColumn,虽然在UI展现上,是一个BUTTON的样子,但是,它的实际形态,并不是传统意义的BUTTON,而是渲染出来的样式,完全是painting的效果而已。所以,对于传统意义的BUTTON的那一套在这里都失效啦
在正式开始介绍使用方法之前,我们先要进行一个概念性的说明:
DataGridViewButtonColumn,虽然在UI展现上,是一个BUTTON的样子,但是,它的实际形态,并不是传统意义的BUTTON,而是渲染出来的样式,完全是painting的效果而已。所以,对于传统意义的BUTTON的那一套在这里都失效啦
今天,我们先来说一下,如何根据需要动态改变某个button显示的文本
实例1:手动创建
private void GridViewThree_Load(object sender, EventArgs e) { //禁用添加行 dataGridView1.AllowUserToAddRows = false; //创建 按钮列 DataGridViewButtonColumn btnCol1 = new DataGridViewButtonColumn(); //显示为此列中单元格的按钮文本 btnCol1.UseColumnTextForButtonValue = false; btnCol1.Name = "Name"; btnCol1.HeaderText = "按钮列^^^^^^"; dataGridView1.Columns.Add(btnCol1); //创建 多选框列 DataGridViewCheckBoxColumn checkCol = new DataGridViewCheckBoxColumn(); checkCol.HeaderText = "boolean列!!!"; dataGridView1.Columns.Add(checkCol); //创建 行 DataGridViewRow rowOne = new DataGridViewRow(); rowOne.CreateCells(dataGridView1); rowOne.Cells[0].Value = "编辑"; rowOne.Cells[1].Value = false; dataGridView1.Rows.Add(rowOne); DataGridViewRow rowTwo = new DataGridViewRow(); rowTwo.CreateCells(dataGridView1); rowTwo.Cells[0].Value = "删除"; rowTwo.Cells[1].Value = true; dataGridView1.Rows.Add(rowTwo); }
//单元格点击事件 private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) { //获取当前点击的列 DataGridViewButtonColumn btnCol = dataGridView1.Columns[e.ColumnIndex] as DataGridViewButtonColumn; if (btnCol != null) { MessageBox.Show("当前点击的列是:" + btnCol.HeaderText); } DataGridViewCheckBoxColumn checkCol = dataGridView1.Columns[e.ColumnIndex] as DataGridViewCheckBoxColumn; if (checkCol != null) { MessageBox.Show("当前点击的是checkbox列:" + checkCol.HeaderText); } //e.RowIndex>-1,说明当前点击的不是标题行(列头) if (e.RowIndex == -1) { MessageBox.Show("标题咧"); } //获取当前点击的行 if (dataGridView1.Columns[e.ColumnIndex] is DataGridViewButtonColumn && e.RowIndex > -1) { //获取当前被点击的单元格 DataGridViewButtonCell btnCell = dataGridView1.CurrentCell as DataGridViewButtonCell; MessageBox.Show(btnCell.Value.ToString()); if (btnCell.Tag == null) { MessageBox.Show(btnCell.Value.ToString()); btnCell.Value = "停用"; btnCell.Tag = true; } } }
实例2:数据绑定
//自定义绑定,指定标题列 private void DataGridFourth_Load(object sender, EventArgs e) { //绑定List集合要求绑定到 对象的属性,而不是成员变量 List<UserName> list = UserName.GetList(); dataGridView1.DataSource = list; } //单元格点击事件 private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) { if (dataGridView1.Columns[e.ColumnIndex] is DataGridViewButtonColumn&&e.RowIndex>-1) { DataGridViewButtonCell btnCell = dataGridView1.CurrentCell as DataGridViewButtonCell; if (btnCell != null) { btnCell.Value = "点击过了"; } } }
public class UserName { public string Name { get; set; } public int Age { get; set; } public bool IsEnable { get; set; } public string BtnStr { get; set; } public static List<UserName> GetList() { return new List<UserName>() { new UserName{Name="张三",Age=20,IsEnable=false,BtnStr="重置"}, new UserName{Name="李四",Age=21,IsEnable=false,BtnStr="重置"}, new UserName{Name="王五",Age=22,IsEnable=true,BtnStr="重置"}, new UserName{Name="找老刘",Age=23,IsEnable=true,BtnStr="重置"} }; } }
0 0
- DataGridViewButtonColumn
- DataGridViewButtonColumn添加单击事件
- DataGridViewButtonColumn的使用 —…
- DataGridViewButtonColumn的使用 — 动态改变按钮的文本
- DataGridViewButtonColumn的使用 — 动态改变按钮的文本
- C# DataGridViewButtonColumn的使用—动态改变按钮的文本
- WinForm DataGridView里的按钮列(DataGridViewButtonColumn)的文本不显示
- C#禁用 Windows 窗体 DataGridView 控件的按钮列DataGridViewButtonColumn中的按钮
- 《Effective C++》资源管理:条款16-条款17
- No orientation specified, and the default is horizontal.
- 怎么得到文件的创建日期
- static __always_inline unsigned long __ffs(unsigned long word)
- SQL分页排序的实现与分页数据重复问题——以Oracle rownum为例
- DataGridViewButtonColumn
- Maven学习(五):maven的灵活构建
- Entity framework多表查询
- LDD3_配置内核树
- Java中文分词工具AnsjSeg使用
- 设置备份
- UVA - 10305 (Ordering Tasks) 拓扑排序
- 《GNU make项目管理》笔记--简单的makefile
- android之json解析