VB.net中 datagridview控件如何读取框选区域内的行数和区域内的数据总和

datagridview表中,我希望用鼠标框选区域内的单元格时,能自动计算选了多少行,以及框选区域内的数据值的合计。如同Excel表格中,框选区域的数据总和会显示在右下。... datagridview表中,我希望用鼠标框选区域内的单元格时,能自动计算选了多少行,以及框选区域内的数据值的合计。如同Excel表格中,框选区域的数据总和会显示在右下。
另外要用哪个事件?
展开
 我来答
syx54
2019-01-26 · TA获得超过7379个赞
知道大有可为答主
回答量:6567
采纳率:83%
帮助的人:2763万
展开全部

在窗体上加上三个标签控件:Label1、Label2、Label3

    Private Sub DataGridView1_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles DataGridView1.MouseUp
        Dim counter As Integer
        Dim SelectedCellTotal As Integer = 0
        Dim SelectedCellCount As Integer = 0
        For counter = 0 To (DataGridView1.SelectedCells.Count - 1)
            If DataGridView1.SelectedCells(counter).FormattedValueType Is _
            Type.GetType("System.String") Then
                Dim value As String = Nothing
                If (DataGridView1.IsCurrentCellDirty = True) Then
                    value = DataGridView1.SelectedCells(counter).EditedFormattedValue.ToString()
                Else
                    value = DataGridView1.SelectedCells(counter).FormattedValue.ToString()
                End If
                If value IsNot Nothing Then
                    If Not value.Length = 0 Then
                        SelectedCellTotal = SelectedCellTotal + Integer.Parse(value)
                        SelectedCellCount = SelectedCellCount + 1
                    End If
                End If
            End If
        Next
        Label1.Text = "选中的单元格个数为: " & SelectedCellCount.ToString()
        Label2.Text = "单元格里数据之和为: " & SelectedCellTotal.ToString()
        Label3.Text = "选中的单元格行数为:" & DataGridView1.SelectedRows.Count.ToString()
    End Sub
更多追问追答
追问
谢谢syx54的指导,我有稍做了少许调整,解决了选中非数字单元格会出错的情况,上述程序选中单元格数和求和是正确的,但是求选中多少行好像不行,一直显示为0。
If IsNumeric(value) Then '新增加判定是否为数字

SelectedCellTotal = SelectedCellTotal + Double.Parse(value)
End If
追答
对的,对于园中非数字单元格需要加代码判断处理。对于选择非整个行,也需要加代码。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式