热情软件屋

 

如何才能使DBGrid的前若干列固定不动


编号:QA002848
建立日期: 2000年4月13日 最后修改日期:2000年4月13日
所属类别:

leon:
    操作系统: pwin97
    编程工具: vb5.0
    问题: 我是一个VB爱好者,在实际编程中,我经常使用VB中的DBGrid控件,也经常觉得DBGrid控件的布局不太令人满意,不如MsFlexGrid控件好用,因为 MsFlexGrid控件能定义前几列在拖动水平滚动条时不可移动,这在对字段较多的数据库操作时非常好用,可以在主要字段固定的情况下编辑记录,在这点上MsFlexGrid就比DBGrid功能强,但MsFlexGrid不能进行数据库锁定和动态编辑。请问如何才能使DBGrid的前若干列固定不动,是否要建立一个新的控件。请尽快答复为盼!

回答:

    DBGrid也有锁定列的功能,只是用法比较奇怪。DBGrid可以使用Split对象将一个表分割成两个完全相同的部分。我们可以将左边的一个只显示几个固定列,而右边的那个显示其余列。下面是一个小例子。
    Private Sub Form_Load()
    ' Hide all columns in Splits(1) except for columns 0 and 1
    Data1.Refresh
    
    DBGrid1.Splits.Add 0
    Dim Cols As Columns
    
    Set Cols = DBGrid1.Splits(0).Columns
    
    For Each C In Cols
     C.Visible = False
    Next C
    
    Cols(0).Visible = True
    Cols(1).Visible = True
    
    ' Configure Splits(1) to display exactly two columns, and
    ' disable resizing
    
    With DBGrid1.Splits(0)
     .SizeMode = dbgNumberOfColumns
     .Size = 2
     .AllowSizing = False
    End With
    ' Set columns 0 and 1 invisible in other splits (Splits 0 and 2)
    Set Cols = DBGrid1.Splits(1).Columns
    Cols(0).Visible = False
    Cols(1).Visible = False
    End Sub

此问题由李海回答。

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio