C# winform DataGridView中添加按钮
2014-04-14 16:42
330 查看
首先,一头雾水,百度之。资料如下:
注意:DataGridView控件是从.NET Framework 2.0版本开始追加的。
在DataGridView的列中想表示和LinkLabel控件一样的链接时,可以使用DataGridViewLinkColumn来实现。DataGridViewLinkColumn类的使用和在这里的DataGridViewButtonColumn使用方法基本相同。
下面在例子是在DataGridView中追加链接列的代码。
[VB.NET] 'DataGridViewLinkColumn作成 Dim column As New DataGridViewLinkColumn() '设定列的名字 column.Name = "Link" '所有的链接文字列表示为"点击阅览" column.UseColumnTextForLinkValue
= True column.Text = "点击阅览" '鼠标停留在链接上时显示下划线 column.LinkBehavior = LinkBehavior.HoverUnderline '设定为不能自动访问 column.TrackVisitedState = True '向DataGridView追加 DataGridView1.Columns.Add(column)
[C#] //DataGridViewLinkColumn作成 DataGridViewLinkColumn column = new DataGridViewLinkColumn(); //设定列的名字 column.Name = "Link"; //所有的链接文字列表示为"点击阅览" column.UseColumnTextForLinkValue
= true; column.Text = "点击阅览"; //鼠标停留在链接上时显示下划线 column.LinkBehavior = LinkBehavior.HoverUnderline; //设定为不能自动访问 column.TrackVisitedState = true; //向DataGridView追加 DataGridView1.Columns.Add(column);
获得链接被点击
获得链接被点击的方法也和DataGridViewButtonColumn一样,使用DataGridView.CellContentClick事件实现。
补充:CellClick事件,在单元格内不是链接的部分点击时也会被触发。
下面的例子就是获得第几行的链接被点击的代码。
[VB.NET] 'CellContentClick事件处理器 Private Sub DataGridView1_CellContentClick(ByVal sender As Object, _ ByVal e As DataGridViewCellEventArgs) _ Handles DataGridView1.CellContentClick
Dim dgv As DataGridView = CType(sender, DataGridView '如果是"Link"列,被点击 If dgv.Columns(e.ColumnIndex).Name = "Link" Then MessageBox.Show((e.RowIndex.ToString() + _ "行的链接被点击了。")) '已经访问 Dim cell As DataGridViewLinkCell = _ CType(dgv(e.ColumnIndex, e.RowIndex),
DataGridViewLinkCell) cell.LinkVisited = True End If End Sub
[C#] //CellContentClick事件处理器 private void DataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) { DataGridView dgv = (DataGridView)sender;
//如果是"Link"列,被点击 if (dgv.Columns[e.ColumnIndex].Name == "Link" { MessageBox.Show(e.RowIndex.ToString() + "行的链接被点击了。"); //已经访问 DataGridViewLinkCell cell = (DataGridViewLinkCell)dgv[e.ColumnIndex, e.RowIndex]; cell.LinkVisited = true; } }
然后,照葫芦画瓢呗。
![](http://img.blog.csdn.net/20140414163603859)
仔细看微软的提示,一切都变得简单。
然而,又出现了点问题
datagridview中添加按钮列,怎么编辑按钮列显示的文字?编辑text属性,没有效果。
依然百度,资料如下:
搞定,收工,哈哈哈。
注意:DataGridView控件是从.NET Framework 2.0版本开始追加的。
在DataGridView的列中想表示和LinkLabel控件一样的链接时,可以使用DataGridViewLinkColumn来实现。DataGridViewLinkColumn类的使用和在这里的DataGridViewButtonColumn使用方法基本相同。
下面在例子是在DataGridView中追加链接列的代码。
[VB.NET] 'DataGridViewLinkColumn作成 Dim column As New DataGridViewLinkColumn() '设定列的名字 column.Name = "Link" '所有的链接文字列表示为"点击阅览" column.UseColumnTextForLinkValue
= True column.Text = "点击阅览" '鼠标停留在链接上时显示下划线 column.LinkBehavior = LinkBehavior.HoverUnderline '设定为不能自动访问 column.TrackVisitedState = True '向DataGridView追加 DataGridView1.Columns.Add(column)
[C#] //DataGridViewLinkColumn作成 DataGridViewLinkColumn column = new DataGridViewLinkColumn(); //设定列的名字 column.Name = "Link"; //所有的链接文字列表示为"点击阅览" column.UseColumnTextForLinkValue
= true; column.Text = "点击阅览"; //鼠标停留在链接上时显示下划线 column.LinkBehavior = LinkBehavior.HoverUnderline; //设定为不能自动访问 column.TrackVisitedState = true; //向DataGridView追加 DataGridView1.Columns.Add(column);
获得链接被点击
获得链接被点击的方法也和DataGridViewButtonColumn一样,使用DataGridView.CellContentClick事件实现。
补充:CellClick事件,在单元格内不是链接的部分点击时也会被触发。
下面的例子就是获得第几行的链接被点击的代码。
[VB.NET] 'CellContentClick事件处理器 Private Sub DataGridView1_CellContentClick(ByVal sender As Object, _ ByVal e As DataGridViewCellEventArgs) _ Handles DataGridView1.CellContentClick
Dim dgv As DataGridView = CType(sender, DataGridView '如果是"Link"列,被点击 If dgv.Columns(e.ColumnIndex).Name = "Link" Then MessageBox.Show((e.RowIndex.ToString() + _ "行的链接被点击了。")) '已经访问 Dim cell As DataGridViewLinkCell = _ CType(dgv(e.ColumnIndex, e.RowIndex),
DataGridViewLinkCell) cell.LinkVisited = True End If End Sub
[C#] //CellContentClick事件处理器 private void DataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) { DataGridView dgv = (DataGridView)sender;
//如果是"Link"列,被点击 if (dgv.Columns[e.ColumnIndex].Name == "Link" { MessageBox.Show(e.RowIndex.ToString() + "行的链接被点击了。"); //已经访问 DataGridViewLinkCell cell = (DataGridViewLinkCell)dgv[e.ColumnIndex, e.RowIndex]; cell.LinkVisited = true; } }
然后,照葫芦画瓢呗。
仔细看微软的提示,一切都变得简单。
然而,又出现了点问题
datagridview中添加按钮列,怎么编辑按钮列显示的文字?编辑text属性,没有效果。
依然百度,资料如下:
在 编辑列——外观——DefaultCellStyle点击...,会出现CellStyle生成器,NullValue就是你想要的
搞定,收工,哈哈哈。
相关文章推荐
- C# 同步调用、异步调用、异步回调
- C#中Finally的一个不太常见的用法
- C# 泛型学习
- c#当窗体大小改变时,窗体中的控件大小也随之改变
- C#中如何获取字体类型,颜色,和大小.
- c# datetime 使用
- C#中的委托,匿名方法和Lambda表达式
- C#图片上传获取二进制流保存至AD
- IComparer 自定义 比较
- C# 操作超时正常还是错
- C#中静态构造函数含义及使用
- C# PowerPoint操作的基本用法
- C# \uxxx Unicode编码解码
- c#中关于变量声明那么点事
- C#每天进步一点--异步编程模式
- [C#] 委托入门
- [杂谈] C#中的集合初始化器&&匿名类
- [C#] C#中的委托,你熟练了吗
- C#框架
- C#多线程操作界面控件的解决方案