在VB中如何使用MSHFlexGrid添加一行
1.增加空行
Me.MSHFlexGrid1.Rows = Me.MSHFlexGrid1.Rows + 1
这种方法只能把空行加到最后一行
MSHFlexGrid1.ADDITEM "" (注意后面有一个空字符,不能省)
以上也是加到最后一行
MSHFlexGrid1.addItem Empty
'增加一空行
MSHFlexGrid1.AddItem
"",i
'此语句是在第i行处插一空行
MSHFlexGrid1.Row=MSHFlexGrid1.Rows-1
'定位当前行到最后一行
MSHFlexGrid1.TopRow = MSHFlexGrid1.Rows - 1 '显示最后一行(定位到最后一行)
2.插入数据行
如果插入有数据的行 如下
Dim Entry,
i
Entry = "数据" & Chr(9) & "数据" & Chr(9)
&
"数据"
'Chr(9)的作用相当表格的那条竖线
MSHFlexGrid1.AddItem Entry,i
以上资料摘录至:https://bbs.csdn.net/topics/70056782
综上资料写了如下代码:
'*****新增的数据显示在MSHFlexGrid中*********
'
MSHFlexGrid1.Rows = MSHFlexGrid1.Rows + 1 '只会增加一个空行
'
MSHFlexGrid1.Row = MSHFlexGrid1.Rows - 1 '定位到最后一行
Dim Entry
'定义一个Variant变量来存储要输入的数据
Dim i As
Long '序号
i =
MSHFlexGrid1.Rows + 1 '新增序号等于当前最大序号加1
Entry = i & vbTab & txtPNumber.Text & vbTab
& txtPName.Text & vbTab & txtStandRsd.Text & vbTab
& txtStandScope.Text &
vbTab &
DTPicker1.Value
MSHFlexGrid1.AddItem Entry
MSHFlexGrid1.TopRow = MSHFlexGrid1.Rows - 1'把当前行定位到最后一行
*******删除一行数据***********
Private Sub MSHFlexGrid1_Click()
HaveSelected = True
n =
MSHFlexGrid1.RowSel
End Sub
Private Sub cmdDel_Click()
' strSql1 = "Delete From Product_Info Where PNumber='" &
cbPNumber.Text & "'"
Dim DelSure As Integer
DelSure = MsgBox("批号为" & MSHFlexGrid1.TextMatrix(n, 1) & "是否删除?",
vbOKCancel)
If DelSure = 2 Then Exit Sub
strSql1 =
"Delete From Product_Info Where PNumber='" &
MSHFlexGrid1.TextMatrix(n, 1) & "'"
Set Rs1 =
New ADODB.Recordset
Set Rs1 =
Cnn.Execute(strSql1)
MSHFlexGrid1.RemoveItem MSHFlexGrid1.RowSel
'删除选中的行
MSHFlexGrid1.TopRow = MSHFlexGrid1.Rows - 1
'把当前行定位到最后一行
'
Debug.Print MSHFlexGrid1.TextMatrix(n, 1)
' Debug.Print
n
' cbFill cbPNumber, Rs1, "PNumber"
' cbPNumber.Refresh
' cbFill cbPNumber, Rs1, "PName"
' cbPName.Refresh
' MsgBox "批号为" & cbPNumber.Text &
"删除成功!"
End Sub
之前在MSHFlexGrid中显示新增数据(无法及时显示新增数据),使用的方法是把整个数据表从ADO读取数据并重新填充一次,现在看来这样的做法是很不科学,如果是大数据时会严重的影响程序性能,还用上面的方法比较快速。
寄语:
不断在学习,不要想去超越谁,重要是明天的您是否超越了今天的您。
加载中,请稍候......