在用DataGrid中用一个数据库文件连接了,数据库中有一列是布尔型的数据,选中DataGrid中数据类型为复选框,但运行显示时,却出现了1,1,1...,而不是复选框,请问高手这是怎么一回事呢?
    还有就是DataGrid中,滚动条的颜色能否变成蓝色?

解决方案 »

  1.   

    没代码?
    也许数据库中的布尔型数据,到VB里就不是boolean了,你读出数据的时候转换一下吧CBool
      

  2.   

    在datagrid中使用checkbox是要自己动态添加上去骗用户的。
      

  3.   

    以前写的程序的一些片段:'要引用Microsoft Data Formatting Object Library
    Private Conn As New ADODB.Connection
    Private Rs As New ADODB.Recordset
        Const dY = 20
        Const dX = 10
        Const WdX = 8
        Const HdY = 10
        Private Sub Check1_LostFocus()
        Check1.Visible = False
        End Sub
        Private Sub DataGrid1_Click()
        On Error Resume Next
         If Not Check1.Visible Then
         Check1.Move DataGrid1.Left + DataGrid1.Columns(DataGrid1.Col).Left + dX, DataGrid1.Top + DataGrid1.RowTop(DataGrid1.Row) + dY, DataGrid1.Columns(DataGrid1.Col).Width - WdX
         Check1.DataField = Rs.Fields.Item(DataGrid1.Col).Name
         Check1.Visible = True
        End If
        End Sub
        Private Sub DataGrid1_ColResize(ByVal ColIndex As Integer, Cancel As Integer)
        On Error Resume Next
        Check1.Visible = False
        If DataGrid1.Columns.Item(DataGrid1.Columns.Count - 1).Left + DataGrid1.Columns.Item(DataGrid1.Columns.Count - 1).Width >= DataGrid1.Width - 270 Then
         Command3.Visible = True
        Else
         Command3.Visible = False
        End If
        End Sub
         
         
        Private Sub DataGrid1_RowColChange(LastRow As Variant, ByVal LastCol As Integer)
         On Error Resume Next
         If DataGrid1.Col = 6 Then
         Check1.Move DataGrid1.Left + DataGrid1.Columns(DataGrid1.Col).Left + dX, DataGrid1.Top + DataGrid1.RowTop(DataGrid1.Row) + dY, DataGrid1.Columns(DataGrid1.Col).Width - WdX
         Check1.DataField = Rs.Fields.Item(DataGrid1.Col).Name
         Check1.Visible = True
         Else
         Check1.Visible = False
         End If
        End Sub
        Private Sub DataGrid1_Scroll(Cancel As Integer)
        Check1.Visible = False
        End Sub
        Private Sub Form_Load()
        Check1.BackColor = &HFFFFFF
        Dim strConn As String
        strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\销售库存1\data\sale&stock.mdb;Persist Security Info=False"
        Conn.CursorLocation = adUseClient
        Conn.Open strConn
        If Rs.State <> adStateClosed Then Rs.Close
        Rs.Open "Select *from [order]", Conn, adOpenStatic, adLockOptimistic
        Set Me.DataGrid1.DataSource = Rs
         DataGrid1.RowHeight = Check1.Height
         DataGrid1.AllowRowSizing = False
         DataGrid1.AllowUpdate = False
         Check1.Visible = False
         Set Check1.DataSource = Rs
         
         '下面是分别用三种方式来显示布尔值的例子,可以自定义为自己想要的格式:
         Dim bFmt1 As New StdDataFormat
         'Dim bFmt2 As New StdDataFormat
         'Dim bFmt3 As New StdDataFormat
         
         bFmt1.Type = fmtBoolean
         bFmt1.TrueValue = "√"
         bFmt1.FalseValue = "×"
         bFmt1.NullValue = "?"
         Set DataGrid1.Columns(6).DataFormat = bFmt1
         
         'bFmt2.Type = fmtBoolean
         'bFmt2.TrueValue = "True" '"√"
         'bFmt2.FalseValue = "False" '" ×"
         'Set DataGrid1.Columns(6).DataFormat = bFmt2
         
         'bFmt3.Type = fmtBoolean
         'bFmt3.TrueValue = "是" '"√"
         'bFmt3.FalseValue = "否" '" ×"
         'Set DataGrid1.Columns(6).DataFormat = bFmt3
        End Sub
      

  4.   

    请问3#的大哥,check1,是什么?
      

  5.   

    哪位大哥大姐,能详细说一下listview的各属性,方法,最好能举例说明?
    及怎样实现复选框呢?
      

  6.   

    我也在看DataGrid控件,
    可是不理解你的需要的結果;
      

  7.   

    check1是一个自己额外添加进去欺骗用户的checkbox。