做一个排班系统,要在表格标题栏中分栏,在vb中用什么控件可以实现?具体属性是什么?最好有代码。。

解决方案 »

  1.   


    老外开发时,真的没有很好地注意过中式表格的需求。网上似有中式表格控件供下载或出售。系统固有的,可考虑 MSFlexGrid 或 MSHFlexGrid,有单元格合并功能。具体实现在网上搜吧。
      

  2.   


    这个 MSFlexGrid 或 MSHFlexGrid 可以实现。代码调试过。Private Sub Form_Load()
    Dim sEntry As String, i As Integer, j As IntegerWith MSFlexGrid1
        .Cols = 8
        .Rows = 1
        .FixedRows = 0
        .FixedCols = 0
        sEntry = "姓名" & vbTab & "2月18日" & vbTab & "2月19日" & vbTab & "2月20日" & vbTab & "2月21日" & vbTab & "2月22日" & vbTab & "2月23日" & vbTab & "2月24日"
        .AddItem sEntry, 0
        sEntry = "姓名" & vbTab & "雨水" & vbTab & "正月初十" & vbTab & "正月十一" & vbTab & "正月十二" & vbTab & "正月十三" & vbTab & "正月十四" & vbTab & "元宵节"
        .AddItem sEntry, 1
        sEntry = "姓名" & vbTab & "星期一" & vbTab & "星期二" & vbTab & "星期三" & vbTab & "星期四" & vbTab & "星期五" & vbTab & "星期六" & vbTab & "星期日"
        .AddItem sEntry, 2
        For i = 0 To 3
            .Row = i
            For j = 0 To 7
                .Col = j
                .CellAlignment = flexAlignCenterCenter
            Next j
        Next i
                
        .Row = 2
        .Col = 1
        .CellForeColor = vbBlue
        .Col = 7
        .CellForeColor = vbBlue    .MergeCells = flexMergeRestrictColumns
        .MergeCol(0) = True 'First Column in grid
        .FixedRows = 3
        .Row = 3
        .Col = 0
    End WithEnd Sub
      

  3.   

    可以嵌入控件(Combobox, Checkbox):Private Sub Form_Load()
    Dim sEntry As String, i As Integer, j As IntegerWith MSFlexGrid1
        .Cols = 8
        .Rows = 1
        .FixedRows = 0
        .FixedCols = 0
        sEntry = "姓名" & vbTab & "2月18日" & vbTab & "2月19日" & vbTab & "2月20日" & vbTab & "2月21日" & vbTab & "2月22日" & vbTab & "2月23日" & vbTab & "2月24日"
        .AddItem sEntry, 0
        sEntry = "姓名" & vbTab & "雨水" & vbTab & "正月初十" & vbTab & "正月十一" & vbTab & "正月十二" & vbTab & "正月十三" & vbTab & "正月十四" & vbTab & "元宵节"
        .AddItem sEntry, 1
        sEntry = "姓名" & vbTab & "星期一" & vbTab & "星期二" & vbTab & "星期三" & vbTab & "星期四" & vbTab & "星期五" & vbTab & "星期六" & vbTab & "星期日"
        .AddItem sEntry, 2
        For i = 0 To 3
            .Row = i
            For j = 0 To 7
                .Col = j
                .CellAlignment = flexAlignCenterCenter
            Next j
        Next i
                
        .Row = 2
        .Col = 1
        .CellForeColor = vbBlue
        .Col = 7
        .CellForeColor = vbBlue    .MergeCells = flexMergeRestrictColumns
        .MergeCol(0) = True 'First Column in grid
        .FixedRows = 3
        .RowHeight(3) = Combo1.Height + 20
        .ColWidth(0) = Combo1.Width + 20
        .Row = 3
        .Col = 0
        Combo1.Left = .Left + .CellLeft + 10
        Combo1.Top = .Top + .CellTop
        Check1(0).Top = Combo1.Top + (.RowHeight(3) - Check1(0).Height) \ 2
        Check1(0).Left = Combo1.Left + .ColWidth(0) + (.ColWidth(1) - Check1(0).Width) \ 2
        
        For i = 1 To 6
            Check1(i).Top = Check1(0).Top
            Check1(i).Left = Check1(i - 1).Left + .ColWidth(i)
        Next i
        
        .BackColorBkg = &H8000000B
    End WithEnd Sub