datagridview 定位到最后一行,定位不准的原因

C# 写的 winform 程序,定位到最后一行

dgvGoods.FirstDisplayedScrollingRowIndex = dgvGoods.Rows.Count - 1;

测试中发现,一旦新加行的高度增加了(列宽定死了,但开了自动调整,显示内容超长时,会自动换行,让行高增加),垂直滚动条就不能定位到最底部了,总是会往上一点。如果这种行越来越多,定位也会越来越往上。

设置 CurrentCell 也一样会碰到这个问题。

看来 datagridview 的定位应该是根据行数和默认的行高算出来的,一旦行高出现变化,就会出现定位不准的问题。

我把列宽增大了点,避免了自动换行的问题(也可以关闭自动调整),这样滚动条就总能到底了。

 

转载于:https://www.cnblogs.com/sunkinux/p/4624586.html

### 回答1: 可以使用以下代码删除DataGridView中的最后一行: ```csharp if (dataGridView1.Rows.Count > ) { dataGridView1.Rows.RemoveAt(dataGridView1.Rows.Count - 1); } ``` 其中,`dataGridView1.Rows.Count`表示DataGridView中的行数,`dataGridView1.Rows.RemoveAt()`方法可以删除指定索引的行,这里使用`dataGridView1.Rows.Count - 1`表示最后一行的索引。 ### 回答2: 在DataGridView中删除最后一行的方法,可以使用以下代码来实现: ```csharp // 获取DataGridView的总行数 int rowCount = dataGridView1.RowCount; // 若DataGridView有行数据,则删除最后一行 if (rowCount > 0) { dataGridView1.Rows.RemoveAt(rowCount - 1); } ``` 首先,我们需要获取DataGridView中的行数,通过`RowCount`属性来实现。然后,我们使用`Rows.RemoveAt()`方法来删除最后一行,将参数设置为`rowCount - 1`。在删除最后一行之前,我们需要先判断DataGridView是否有行数据,以避免出现索引越界的情况。 ### 回答3: 可以通过以下步骤在DataGridView中删除最后一行: 首先,通过获取DataGridView中的行数,确定最后一行的索引。可以使用DataGridViewRowCount属性来获取行数,然后将其减去1即可得到最后一行的索引。 接下来,使用DataGridViewRows属性,通过最后一行的索引来获取最后一行的实际行对象。 最后,使用DataGridViewRows属性的Remove方法,将最后一行DataGridView中删除。 以下是具体的代码实现示例: ``` int lastIndex = dataGridView1.RowCount - 1; // 获取最后一行的索引 dataGridView1.Rows.RemoveAt(lastIndex); // 删除最后一行 ``` 以上代码假设DataGridView的名称为dataGridView1,通过调用Rows的RemoveAt方法来删除最后一行。 需要注意的是,如果DataGridView中没有任何行,则会出现异常。在使用RemoveAt方法之前,可以先检查RowCount属性的值是否大于0,以确保DataGridView中至少有一行
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值