datagridview中使最新增加的一行样式不一样 兼谈网友 skypaf 的问题
来源:互联网 发布:javascript ajax例子 编辑:程序博客网 时间:2024/06/07 01:53
网友skypaf 的原问题发表在csdn的bbs上:http://bbs.csdn.net/topics/392271272
我个人的理解是他想让新增的一行与原来的行样式不一致。
那么如何在datagridview中完成呢?
说实在的以往写代码的时候还真没有这么考虑过这样的问题,
先说看到问题后自己走的一个弯路:
下图中红框标出的部分,
先说看到问题后自己走的一个弯路:
下图中红框标出的部分,
这一行虽然是空白的,但是它的的确确是,datagridview的最后一行,用代码就是:
我在那里将新增的一行的前景色、字体设置了半天不显示,就是以为有内容的才是最后一行,哪里知道这个自动生成的行才是真正的最后一行。
datagridview.Rows(datagridview.Rows.Count - 1)
我在那里将新增的一行的前景色、字体设置了半天不显示,就是以为有内容的才是最后一行,哪里知道这个自动生成的行才是真正的最后一行。
因此,如果需要避免这个问题,请把 DataGridView.AllowUserToAddRows 属性设置为False。
那么代码还是比较容易的:
Private Sub btnAdd_Click(sender As Object, e As EventArgs) Handles btnAdd.Click Call addStudent() Call setRowStyle() End Sub Private Sub addStudent() Dim studentName As String = txtName.Text Dim studentID As String = txtId.Text Dim studentAge As String = txtAge.Text Dim student() As String ReDim student(2) student(0) = studentName student(1) = studentID student(2) = studentAge dgvStudent.Rows.Add(student) End Sub Private Sub setRowStyle() Dim defaultStyle As New DataGridViewCellStyle defaultStyle.Font = New Font("宋体", 12) defaultStyle.ForeColor = Color.Blue Dim newRowStyle As New DataGridViewCellStyle newRowStyle.Font = New Font("黑体", 12) newRowStyle.ForeColor = Color.Red If dgvStudent.Rows.Count > 1 Then dgvStudent.Rows(dgvStudent.Rows.Count - 2).DefaultCellStyle = defaultStyle dgvStudent.Rows(dgvStudent.Rows.Count - 1).DefaultCellStyle = newRowStyle Else dgvStudent.Rows(dgvStudent.Rows.Count - 1).DefaultCellStyle = newRowStyle End If End Sub
显示效果如下:
另外一个注意的地方是:
代码最后一个判断语句,我开始的时候使用的是:
If dgvStudent.Rows.Count > 0 Then dgvStudent.DefaultCellStyle = defaultStyle dgvStudent.Rows(dgvStudent.Rows.Count - 1).DefaultCellStyle = newRowStyle End If
想法是,每次增加都是表格所有先使用defaultStyle,然后使新增加的行,也就是最后一行样式变为newRowStyle。
但是结果却不是我想象的:
也就是说,dgvStudent.DefaultCellStyle = defaultStyle 没有发挥作用,推测是因为设置了单个行的defaultcellStyle,所有表格总体样式就对已经设置的行不起作用了。
那只能枚举每一行修改样式:
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click Dim newRowStyle As New DataGridViewCellStyle newRowStyle.Font = New Font("黑体", 12) newRowStyle.ForeColor = Color.Blue dgvStudent.DefaultCellStyle = newRowStyle For Each singlerow As DataGridViewRow In dgvStudent.Rows singlerow.DefaultCellStyle = newRowStyle Next End Sub
由于.net平台下C#和vb.NET很相似,本文也可以为C#爱好者提供参考。
学习更多vb.net知识,请参看vb.net 教程 目录
阅读全文
0 0
- datagridview中使最新增加的一行样式不一样 兼谈网友 skypaf 的问题
- DataGridView最后一行 的问题
- listview每一行显示不一样的控件!已更新,原来的有点儿小问题,会在内容中指明!
- listview每一行显示不一样的控件!已更新,原来的有点儿小问题,会在内容中指明!
- DataGridView 的样式
- dataGridView的样式设置
- 解决(winform)dataGridView默认选中第一行的问题
- dataGridView的最后空白一行
- CardView 造就不一样的样式
- 关于datagridview自动选中最新的一行数据(最后一条数据)
- C#winform中给datagridview的每一行添加按钮
- 关于table中一个隐藏的tr,改为显示后与其他tr样式不一样的问题
- DataGridView中实现上一页,上一行,下一行,下一页的功能
- 转网友的超市最新程序
- 向DataGridView中添加新的一行数据,可以添加到最后一行或作为第一行
- 向DataGridView中添加新的一行数据,可以添加到最后一行或作为第一行
- 在已绑定数据源的combobox中增加一行
- 如何在DataFrame 中优雅的增加一行,一列
- 【BZOJ1601】【MST】灌水 题解
- 多因素排序
- 父子bash的环境变量和自定义变量继承问题
- SSH知识点整理
- chapter8:聚类---群组发现
- datagridview中使最新增加的一行样式不一样 兼谈网友 skypaf 的问题
- LeetCode Exercise 4: Next Permutation
- 序列化与反序列化
- C++继承体系下的内存大小
- (M)Dynamic Programming:376. Wiggle Subsequence
- Python怎样驱动Firefox浏览器
- POJ 2689 Prime Distance(区间素数筛)
- 第一次设置root与禁用客人会话
- 2012 Asia Chengdu Regional Contest hdu 4474(数位bfs)