DataGridView实现添加合计行并始终显示在底部

博客介绍了如何在DataGridView中实现合计行始终保持在底部,通过使用两个 DataGridView 和一个纵向滚动条来达到效果。主要方法是利用合计行的横向滚动控制数据部分的滚动,同时根据数据变化自动更新合计值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

DataGridView中没有合适的方法来冻结底部的合计行,这里用一种比较简单的方式实现。
1. 数据部分的DataGridView,不带任何滚动框
2.合计部分的DataGridView,带有横向滚动框
3.在画面上添加一个纵向滚动框
实现的主要思路就是用合计行的横向滚动框控制两个DataGridView的横向滚动,右侧的纵向滚动狂控制数据部分的DataGridView,效果看起来就是合计行始终显示。

该例实现了合计行的自动计算,取数据的部分是用程序做的DataTable

DataGridViewSumRow类 Public Class DataGridViewSumRowClass DataGridViewSumRow

    Private dt As DataTable
    Dim dtSum As DataTable
    Private ROW_HEIGHT As Integer = 21 ''行高

    Private Sub DataGridViewSumRow_Load()Sub DataGridViewSumRow_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        VScrollBar1.Visible = False
    End Sub

    Private Sub Button1_Click()Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        dt = GetData()
        Me.DataGridView1.DataSource = dt
        Me.DataGridView1.RowTemplate.Height = ROW_HEIGHT

        GetSumData()

        ''行数超过当前页显示时显示纵向滚动条
        If dt.Rows.Count > 13 Then

            VScrollBar1.Visible = True
            ''总长度为 (所有行数 - 画面一页显示行数) × 行高
            VScrollBar1.Maximum = (Me.DataGridView1.Rows.Count - Me.DataGridView1.DisplayedRowCount(False)) * ROW_HEIGHT
            VScrollBar1.Minimum = 0
            VScrollBar1.SmallChange = 21
            VScrollBar1.LargeChange = 50

        End If

    End Sub


    ''' <summary>
    '''

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

百事洞明

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值