在VB中,DataGrid如何添加行数及列数,单元格内容如何表示?请教高手,本亲手对DataGrid控件不熟悉,谢谢
3个回答
展开全部
Private Sub DataGrid1_RowColChange(LastRow As Variant, ByVal LastCol As Integer)
'显示用户所单击的单元的文字、行和列的信息
Debug.Print DataGrid1.Text; DataGrid1.Row; DataGrid1.Col
End Sub
这是你的第二个问题。
张志晨
第一个问题:
你自己试下:
通过使用 Columns 集合和 Column 对象的属性和方法,可以在程序中添加、删除列。
要在运行时添加一列,可以使用 Add 方法。如果首先声明一个变量,并将新对象赋给该变量,就可以用简明的代码设置各种属性。
Private Sub AddColumn()
'在最右边的位置添加一列。然后设置其 Visible、Width、
'Caption以及 Alignment 属性。DataField 属性则指定
' 该列将绑定到哪一个字段。
Dim c As Column
Set c = DataGrid1.Columns.Add(DataGrid1.Columns.Count)
With c
.Visible = True
.Width = 1000
.Caption = “我的新列”
.DataField = Adodc1.Recordset.Fields(“ProductName”).Name
.Alignment = dbgRight
End With
End Sub
可以使用方法来删除任意一列。请确保使用 ColIndex 参数来指定要删除的列。下面的代码将删除被单击的列。
Private Sub DataGrid1_HeadClick(ByVal ColIndex As Integer)
DataGrid1.Columns.Remove ColIndex
End Sub
另外:
在VB6中,Datagrid控件应该是初学者最喜使用的控件之一,它对数据简单绑定却又往往束缚住手脚。正确的使用的Datagrid必须首先了解它的本质。
Datagrid的本质在于它从来就不是一个真正的网格控件。我们可以片面理解,一个真正的网格控件就是必须将数据脱离Recordset而读进本身的控件。如:Msflexgrid,Mshflexgrid,Spread这些都属于真实的网格控件,我们可以独立的设置这些控见的rows,cols。相反Datagrid,Listview则不属于网格控件。
了解完本质,则可以清楚的知道,因为Datagrid不能将数据读进自身,所以实际它是脱离不了Recordset,我们需要显示的数据效果,只能通过ADO控件来操纵Recordset的表现形式来完成任务。
建议转学VS2011,学习Msflexgrid,Mshflexgrid控件知识。
'显示用户所单击的单元的文字、行和列的信息
Debug.Print DataGrid1.Text; DataGrid1.Row; DataGrid1.Col
End Sub
这是你的第二个问题。
张志晨
第一个问题:
你自己试下:
通过使用 Columns 集合和 Column 对象的属性和方法,可以在程序中添加、删除列。
要在运行时添加一列,可以使用 Add 方法。如果首先声明一个变量,并将新对象赋给该变量,就可以用简明的代码设置各种属性。
Private Sub AddColumn()
'在最右边的位置添加一列。然后设置其 Visible、Width、
'Caption以及 Alignment 属性。DataField 属性则指定
' 该列将绑定到哪一个字段。
Dim c As Column
Set c = DataGrid1.Columns.Add(DataGrid1.Columns.Count)
With c
.Visible = True
.Width = 1000
.Caption = “我的新列”
.DataField = Adodc1.Recordset.Fields(“ProductName”).Name
.Alignment = dbgRight
End With
End Sub
可以使用方法来删除任意一列。请确保使用 ColIndex 参数来指定要删除的列。下面的代码将删除被单击的列。
Private Sub DataGrid1_HeadClick(ByVal ColIndex As Integer)
DataGrid1.Columns.Remove ColIndex
End Sub
另外:
在VB6中,Datagrid控件应该是初学者最喜使用的控件之一,它对数据简单绑定却又往往束缚住手脚。正确的使用的Datagrid必须首先了解它的本质。
Datagrid的本质在于它从来就不是一个真正的网格控件。我们可以片面理解,一个真正的网格控件就是必须将数据脱离Recordset而读进本身的控件。如:Msflexgrid,Mshflexgrid,Spread这些都属于真实的网格控件,我们可以独立的设置这些控见的rows,cols。相反Datagrid,Listview则不属于网格控件。
了解完本质,则可以清楚的知道,因为Datagrid不能将数据读进自身,所以实际它是脱离不了Recordset,我们需要显示的数据效果,只能通过ADO控件来操纵Recordset的表现形式来完成任务。
建议转学VS2011,学习Msflexgrid,Mshflexgrid控件知识。
追问
在VB中,MSFlexGrid这个控件确实好用,但由于单元格总数的限制,有时候用不上来。而Datagrid这个控件我没使用过,也不太熟悉,很难学。
展开全部
他们说的都好复杂,前几天我刚用过啊,很简单的,右键datagrid然后点击“编辑”,然后再选择“追加”就可以添加了。对于单元格内容,单击“属性”,选择“列”,就可以编辑表格的表头了。
追问
谢谢!我现在用vsflexgrid这个控件了,很好用也很强大哦!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
'Ctrl+t找Microsoft DataGrid Control....
'菜单"工程"->"引用" 找 Microsoft ActiveX Data Object....
Dim cn As New ADODB.Connection
Dim rst As New ADODB.Recordset
Dim SqlStr As String
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\db1.mdb;Mode=ReadWrite;Persist Security Info=False;Jet OLEDB:Database Password=111"
SqlStr = "Select * From 某个表"
rst.CursorLocation = adUseClient
rst.Open SqlStr, cn, adOpenDynamic, adLockOptimistic, adCmdText '打开记录集
Set DataGrid1.DataSource = rst '给DataGrid修改数据源
'菜单"工程"->"引用" 找 Microsoft ActiveX Data Object....
Dim cn As New ADODB.Connection
Dim rst As New ADODB.Recordset
Dim SqlStr As String
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\db1.mdb;Mode=ReadWrite;Persist Security Info=False;Jet OLEDB:Database Password=111"
SqlStr = "Select * From 某个表"
rst.CursorLocation = adUseClient
rst.Open SqlStr, cn, adOpenDynamic, adLockOptimistic, adCmdText '打开记录集
Set DataGrid1.DataSource = rst '给DataGrid修改数据源
更多追问追答
追问
不好意思我只是提问上面的问题,如果你知道的话,麻烦你教我一下
追答
这个控件自动化程度很高,行数及列数都是自动的,单元格内容可以提交并保存到数据库,也是自动的
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |