DataGrid控件的使用三
上一篇 / 下一篇 2007-03-06 11:35:24 / 个人分类:vb
S7fkm7|:i0 使用列
H#A^9Y*~}R'Z0 通过更改 DataSource 属性,可以动态地更改在 DataGrid 控件中显示的数据。例如,可以显示同一个数据库的不同表。如果这样做,则 DataGrid 控件将只根据默认的属性显示数据。51Testing软件测试网4q
^{Cb6K
Wb/U|$Q j0\.Q7w0 添加、删除或隐藏列51Testing软件测试网u`_uU5D4R
通过使用 Columns 集合和 Column 对象的属性和方法,可以在程序中添加、删除或隐藏列。51Testing软件测试网E&Mh%_ _HH
51Testing软件测试网#E+| P;[-I
添加和删除一列51Testing软件测试网#Oir6z#R[y`;\
要在运行时添加一列,可以使用 Add 方法。如果首先声明一个变量,并将新对象赋给该变量,就可以用简明的代码设置各种属性。51Testing软件测试网~v:Ai`L|[
Private Sub AddColumn()
Y:}4n4[-]._L0 '' 在最右边的位置添加一列。然后设置其 Visible、Width、51Testing软件测试网G'\+N*~1ygl
'' Caption以及 Alignment 属性。DataField 属性则指定51Testing软件测试网'x\+u#w0xM-E
'' 该列将绑定到哪一个字段。51Testing软件测试网Q%X.ikr(s a8F
Dim c As Column51Testing软件测试网8{H)L.T
?1T|
Set c = DataGrid1.Columns.Add(DataGrid1.Columns.Count)
}0Mn-Q l%L,w#}
Zg0 With c51Testing软件测试网,z+J\?;]-I8|
.Visible = True51Testing软件测试网&Yc(PT1mgVN}
.Width = 1000
!c
^ C;S~+Yzs_-k_1U0 .Caption = "我的新列"
6J C?? Y1bU2[3M.C,M0 .DataField = Adodc1.Recordset.Fields("ProductName").Name51Testing软件测试网sq4k!]ozeC_3x g
.Alignment = dbgRight
hXLDl0 End With51Testing软件测试网y bboE+LHA
End Sub
DM!Jd'{w\%~0 可以使用方法来删除任意一列。请确保使用 ColIndex 参数来指定要删除的列。下面的代码将删除被单击的列。
x6L!_}bPi0 Private Sub DataGrid1_HeadClick(ByVal ColIndex As Integer)
Z8Z@sJP5q0 DataGrid1.Columns.Remove ColIndex51Testing软件测试网gn/[
lD/tK'?8`c
End Sub51Testing软件测试网hTF$UiOvS
51Testing软件测试网gE1VJ*W F5c"oV8Uf%]
隐藏一列
L
_'t6|.i"jLRPk0 通过将 Visible 属性设置为 False,可以隐藏任意一列。当想要限制用户可以查看或编辑的列时这一功能特别有用。下面的示例在 Columns 集合中循环,隐藏除少数列之外的所有列。51Testing软件测试网
ACrn(UV+D/^r
Private Sub HideColumns()51Testing软件测试网)xT2X
V8\H{4K
'' 使用 DataField 属性来判别正在测试的是哪一列。51Testing软件测试网H
Cl |0J
'' 只显示三列:ProductName、UnitPrice以及
i
m1O:p7_Atl0 '' UnitsInStock。
dTsHw7\0 Dim c As Column51Testing软件测试网"i$s6@ P"Vc d8S&q
For Each c In DataGrid1.Columns
R?+mt%_e0 Select Case c.DataField
uQEM,~k0 Case "ProductName"51Testing软件测试网 HT4t,SD9Zp][_$w
c.Visible = True51Testing软件测试网 Cr&H$K/K.T ax6v
Case "UnitPrice"
F4oJKL4n?L0N0 c.Visible = True
%M!`,r`/e${u}0 Case "UnitsInStock"
t!u,KHw&x