为什么我不管我怎么在自定义或者属性里调整DataGrid的列宽,等我运行的时候,一点确定,数据搜出来以后,它的列宽又自动变回最开始的样子了,第一列最窄,中间两列等宽,最后一列最宽,不知道为什么啊?
还有就是,有时我在DataGrid的属性页里改了一些属性后,比如布局里面的宽度后,我运行后,数据仍然可以被搜出来,但显示不出来了,但我要是改一些别的属性,比如“通用”里面的“允许更新”,“有效”;“拆分”里面的“选取框样式”时,运行后数据仍能正常显示,这又是为什么啊?弄的我很郁闷啊
还有就是,有时我在DataGrid的属性页里改了一些属性后,比如布局里面的宽度后,我运行后,数据仍然可以被搜出来,但显示不出来了,但我要是改一些别的属性,比如“通用”里面的“允许更新”,“有效”;“拆分”里面的“选取框样式”时,运行后数据仍能正常显示,这又是为什么啊?弄的我很郁闷啊
为您希望访问的数据库创建一个 Microsoft 数据链接 (.UDL) 文件。请参阅“创建 Northwind OLE DB 数据链接”主题,以获得一个示例。
在窗体上放置一个 ADO Data 控件,并将其 ConnectionString 属性设置为在第 1 步中所创建的OLE DB 数据源。
在这个 Ado Data 控件的 RecordSource 属性中输入一条将返回一个记录集的 SQL 语句。例如,
Select * From MyTableName Where CustID = 12
在窗体上放置一个 DataGrid 控件,并将其 DataSource 属性设置为这个 ADO Data 控件。
右键单击该 DataGrid 控件,然后单击“检索字段”。
右键单击该 DataGrid 控件,然后单击“编辑” 。
重新设置该网格的大小、删除、或添加网格的列。
右键单击该 DataGrid 控件,然后单击“属性”。
使用“属性页”对话框来设置该控件的适当的属性,将该网格配置为所需的外观和行为。
DataGrid1.Columns(I).Width = LenB(Trim(rs.Fields(I))) * 120
所以应该在设计时绑定好数据源,在 DataGrid 的右键菜单上选 Retrieve fields 刷新列,然后选右键菜单的 Edit 调整列宽就可以了。
注意在运行时只能刷新数据,不能调用 ReBind 进行重新绑定。
Private Sub table_Header()
Set dbg2.DataSource = rst '这是绑定
dbg2.Columns(0).Width = 980
dbg2.Columns(0).Caption = " 站点代码"
dbg2.Columns(1).Width = 1250
dbg2.Columns(1).Caption = " 手机号码"
dbg2.Columns(2).Width = 1580
dbg2.Columns(2).Caption = " 站点IP"
dbg2.Columns(3).Width = 3200
dbg2.Columns(3).Caption = " 站点名称"
End Sub
for I=0 to rst.Fields.Count - 1
DataGrid1.Columns(I).Width = LenB(Trim(rst.Fields(I))) * 120
next
Set DataGrid1.DataSource = rst
for I=0 to rst.Fields.Count - 1
DataGrid1.Columns(I).Width = LenB(Trim(rst.Fields(I))) * 120
next