我想在DataGrid中设置某字段为下拉框形式,即点击倒三角按钮,出现选择列表。
请各位大虾赐教,不尽感激!最好能给出例子 :-)

解决方案 »

  1.   

    Private Sub DataGrid1_RowColChange(LastRow As Variant, ByVal LastCol As Integer)
    On Error Resume Next
        With DataGrid1
            Combo1.Move .Left + .Columns(.Col).Left, .Top + .RowTop(.Row), .Columns(.Col).Width
        End With
    End Sub
      

  2.   


    '----------------------------------------------------------------------------
    '
    'Author:lihonggen0
    'Date:2003-6-18
    '功能:DataGrid1上附加COMBO和CheckBox
    '在form上添加一个DataGrid1、一个COMBO和一个CheckBox控件放到屏幕上任何位置都可以
    '----------------------------------------------------------------------------Private Sub DataGrid1_RowColChange(LastRow As Variant, ByVal LastCol As Integer)
        Select Case DataGrid1.Col
            Case 1
                Check1.Visible = False
                Combo1.Visible = True
                Combo1.Width = DataGrid1.Columns(DataGrid1.Col).Width + 50
                Combo1.Left = DataGrid1.Left + DataGrid1.Columns(DataGrid1.Col).Left
                Combo1.Top = DataGrid1.Top + DataGrid1.Row * (DataGrid1.RowHeight) + (DataGrid1.HeadLines) * 195
                Combo1.SetFocus
                If DataGrid1.Columns(DataGrid1.Col).Text <> "" Then
                    Combo1.Text = DataGrid1.Columns(DataGrid1.Col).Text
                End If
            Case 2
                Check1.Visible = True
                Check1.Width = DataGrid1.Columns(DataGrid1.Col).Width + 50
                Check1.Left = DataGrid1.Left + DataGrid1.Columns(DataGrid1.Col).Left
                Check1.Top = DataGrid1.Top + DataGrid1.Row * (DataGrid1.RowHeight) + (DataGrid1.HeadLines) * 195
                Check1.SetFocus
                Combo1.Visible = False
            Case Else
                Combo1.Visible = False
                Check1.Visible = False
        End SelectEnd SubPrivate Sub Form_Load()
    '工程--->引用--->Microsoft ActiveX Data Object 2.x(版本号)    Dim CN   As New ADODB.Connection                '定义数据库的连接
        Dim Rs   As New ADODB.Recordset
        CN.ConnectionString = "Provider=sqloledb;Data Source=pmserver;Initial Catalog=northwind;User Id=sa;Password=sa;"    CN.Open
        Rs.CursorLocation = adUseClient
        Rs.Open "select * from employees", CN, adOpenDynamic, adLockOptimistic
       Set DataGrid1.DataSource = Rs
    End Sub
      

  3.   

    还有你可以考虑用第三方控件,如vsflexgrid
    vsflexgrid实现这个很容易
      

  4.   

    delphi里有这个东西,
    好象vb里没有哦,
    不过可以在datagrid上加一个combox来实现
      

  5.   


        DBGrid右键属性/layout,选择Column,再将下面左边最后一个选项Button选上即可!
        试试!