这是我的源码,写的比较烂哦,不知道你能看懂不,添麻烦了!
另:我在网上找一个别人做的控件,可以实现这个功能,还可以求平均值等,他的合计栏在Datagridview的底部,但滚动条在合计栏的底部,不知道是不是也用了你的第一个方法?
Public Class Form5
Dim comm As String
Private Sub Form5_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Datagridview1.Height = Me.Height - 50
Datagridview1.Width = Me.Width - 30
commsz()
Dim sqlada As New SqlClient.SqlDataAdapter("select rq,swdj,qymc,ssxq,ssfj," + comm + " from z_data where rq = '" + Dialog1.rq + "' and swdj = '" + Form6.swdj + "' and qymc = '" + Form6.qymc + "' and ssxq = '" + Form6.ssxq + "' and ssfj = '" + Form6.ssfj + "' ", Dialog1.rs)
Dim ds As New DataSet
ds.Clear()
sqlada.Fill(ds)
Datagridview1.ColumnHeadersBorderStyle = DataGridViewHeaderBorderStyle.Sunken
Datagridview1.RowHeadersBorderStyle = DataGridViewHeaderBorderStyle.Sunken
Datagridview1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells
Datagridview1.DataSource = ds.Tables(0)
Datagridview1.Columns(0).HeaderText = "日期"
Datagridview1.Columns(1).HeaderText = "税务登记"
Datagridview1.Columns(2).HeaderText = "企业名称"
Datagridview1.Columns(3).HeaderText = "所属辖区"
Datagridview1.Columns(4).HeaderText = "所属分局"
If Datagridview1.Rows.Count > 0 Then
Datagridview1.Columns(4).Frozen = True
End If
End Sub
Private Sub commsz()
'-------------------------从jb_szxx中查询税种信息添加到comm字符串中
Dim sql As New SqlClient.SqlDataAdapter("select id,szmc from jb_szxx order by id ", Dialog1.rs)
Dim rs As New DataSet
rs.Clear()
sql.Fill(rs)
Dim sl As Integer
sl = rs.Tables(0).Rows.Count - 1
Dim a As String()
ReDim a(sl)
For sl = 0 To rs.Tables(0).Rows.Count - 1
a(sl) = rs.Tables(0).Rows(sl)(1).ToString
Next
'Dim comm As String
For sl = 0 To rs.Tables(0).Rows.Count - 2
comm &= "" + a(sl) + ","
Next
comm = comm & "" + a(rs.Tables(0).Rows.Count - 1) + ""
'-----------------------结束
End Sub
Private Sub Datagridview1_CellPainting(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellPaintingEventArgs) Handles Data1.CellPainting
If e.ColumnIndex < 0 And e.RowIndex >= 0 Then
e.Paint(e.ClipBounds, DataGridViewPaintParts.All)
Dim indexRect As Rectangle = e.CellBounds
indexRect.Inflate(-2, -2)