⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gracegrid.ctl

📁 学生宿舍管理系统vb源码
💻 CTL
字号:
VERSION 5.00
Object = "{86CF1D34-0C5F-11D2-A9FC-0000F8754DA1}#2.0#0"; "mscomct2.ocx"
Object = "{5E9E78A0-531B-11CF-91F6-C2863C385E30}#1.0#0"; "msflxgrd.ocx"
Begin VB.UserControl graceGrid 
   ClientHeight    =   2505
   ClientLeft      =   0
   ClientTop       =   0
   ClientWidth     =   4800
   ScaleHeight     =   2505
   ScaleWidth      =   4800
   Begin MSComCtl2.DTPicker DTPicker1 
      Height          =   300
      Left            =   1440
      TabIndex        =   3
      Top             =   1320
      Visible         =   0   'False
      Width           =   1095
      _ExtentX        =   1931
      _ExtentY        =   529
      _Version        =   393216
      Format          =   25493505
      CurrentDate     =   39232
   End
   Begin VB.ComboBox Combo1 
      Height          =   300
      Left            =   1440
      TabIndex        =   2
      Top             =   960
      Visible         =   0   'False
      Width           =   1215
   End
   Begin VB.TextBox Text1 
      Height          =   300
      Left            =   960
      TabIndex        =   1
      Text            =   "Text1"
      Top             =   720
      Visible         =   0   'False
      Width           =   1095
   End
   Begin MSFlexGridLib.MSFlexGrid MSFlexGrid1 
      Height          =   2415
      Left            =   0
      TabIndex        =   0
      Top             =   0
      Width           =   4815
      _ExtentX        =   8493
      _ExtentY        =   4260
      _Version        =   393216
      Rows            =   19
      Cols            =   4
      RowHeightMin    =   300
      BackColorFixed  =   12171543
      ForeColorFixed  =   0
      BackColorBkg    =   12632256
      AllowUserResizing=   1
   End
End
Attribute VB_Name = "graceGrid"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = False
Public Enum cType
    txt = 0
    com = 1
    dtp = 2
End Enum


Private ComboVal() As String
Private ControlType() As Integer

Private Sub Combo1_Change()
    MSFlexGrid1.Text = Combo1.Text
End Sub

Private Sub Combo1_Click()
    Combo1.Text = MSFlexGrid1.Text
End Sub

Private Sub Combo1_Validate(Cancel As Boolean)
    MSFlexGrid1.Text = Combo1.Text
End Sub

Private Sub DTPicker1_Validate(Cancel As Boolean)
    MSFlexGrid1.Text = DTPicker1.Value
End Sub

Private Sub MSFlexGrid1_Click()
    Dim i As Long
    
    If MSFlexGrid1.Col < MSFlexGrid1.FixedCols Then Exit Sub
    If ControlType(MSFlexGrid1.Col) = txt Then
        Combo1.Visible = False
        DTPicker1.Visible = False
        Text1.Visible = True
        Text1.BackColor = MSFlexGrid1.CellBackColor
        Text1 = MSFlexGrid1.Text
        Text1.Top = MSFlexGrid1.RowPos(MSFlexGrid1.Row) + 30
        Text1.Left = MSFlexGrid1.ColPos(MSFlexGrid1.Col) + 30
        Text1.Width = MSFlexGrid1.ColWidth(MSFlexGrid1.Col)
        Text1.Height = MSFlexGrid1.RowHeight(MSFlexGrid1.Row)
        Text1.SetFocus
    ElseIf ControlType(MSFlexGrid1.Col) = com Then
        Text1.Visible = False
        DTPicker1.Visible = False
        Combo1.Visible = True
        Combo1.BackColor = MSFlexGrid1.CellBackColor
        Combo1.Top = MSFlexGrid1.RowPos(MSFlexGrid1.Row) + 30
        Combo1.Left = MSFlexGrid1.ColPos(MSFlexGrid1.Col) + 30
        Combo1.Width = MSFlexGrid1.ColWidth(MSFlexGrid1.Col)
'        Combo1.Height = MSFlexGrid1.RowHeight(MSFlexGrid1.Row)
        Combo1.Clear
        Combo1.Text = MSFlexGrid1.Text
        For i = 1 To ComboVal(MSFlexGrid1.Col, 0)
            Combo1.AddItem ComboVal(MSFlexGrid1.Col, i)
        Next i
        Combo1.SetFocus
    ElseIf ControlType(MSFlexGrid1.Col) = dtp Then
        On Error Resume Next
        Text1.Visible = False
        Combo1.Visible = False
        DTPicker1.Visible = True
'        DTPicker1.CalendarBackColor = MSFlexGrid1.CellBackColor
        DTPicker1.Value = CDate(MSFlexGrid1.Text)
        DTPicker1.Top = MSFlexGrid1.RowPos(MSFlexGrid1.Row) + 30
        DTPicker1.Left = MSFlexGrid1.ColPos(MSFlexGrid1.Col) + 30
        DTPicker1.Width = MSFlexGrid1.ColWidth(MSFlexGrid1.Col)
        DTPicker1.Height = MSFlexGrid1.RowHeight(MSFlexGrid1.Row)
        DTPicker1.SetFocus
    End If
End Sub

Private Sub Text1_Change()
    MSFlexGrid1.Text = Text1
End Sub

Private Sub UserControl_Resize()
    MSFlexGrid1.Width = UserControl.Width
    MSFlexGrid1.Height = UserControl.Height
    
    Dim i As Long
    For i = 0 To MSFlexGrid1.Cols - 1
        MSFlexGrid1.ColWidth(i) = MSFlexGrid1.Width / MSFlexGrid1.Cols - 100
    Next i
    
    SetBackColor
    ReDim Preserve ControlType(0 To MSFlexGrid1.Cols - 1) As Integer
End Sub

Public Property Let Row(r As Long)
    '设置表格当前行
    MSFlexGrid1.Row = r
End Property
Public Property Get Row() As Long
    '获取表格当前行
    Row = MSFlexGrid1.Row
End Property
Public Property Let Rows(r As Long)
    '设置表格行数
    MSFlexGrid1.Rows = r
    SetBackColor
End Property
Public Property Get Rows() As Long
    '获取表格行数
    Rows = MSFlexGrid1.Rows
End Property
Public Property Let FixedRows(r As Long)
    '设置表格固定行数
    MSFlexGrid1.FixedRows = r
    SetBackColor
End Property
Public Property Get FixedRows() As Long
    '获取表格固定行行数
    FixedRows = MSFlexGrid1.FixedRows
End Property

Public Property Let Col(c As Long)
    '设置表格当前列
    MSFlexGrid1.Col = c
End Property
Public Property Get Col() As Long
    '获取表格当前列
    Col = MSFlexGrid1.Col
End Property
Public Property Let Cols(c As Long)
    '设置表格列数
    ReDim Preserve ControlType(0 To c - 1) As Integer
    ReDim Preserve ComboVal(0 To c - 1, 0 To 100) As String
    MSFlexGrid1.Cols = c
    SetBackColor
End Property
Public Property Get Cols() As Long
    '获取表格列数
    Cols = MSFlexGrid1.Cols
End Property
Public Property Let FixedCols(c As Long)
    '设置表格固定列列数
    MSFlexGrid1.FixedCols = c
    SetBackColor
End Property
Public Property Get FixedCols() As Long
    '获取表格固定列列数
    FixedCols = MSFlexGrid1.FixedCols
End Property

Public Property Let ColWidth(c As Long, w As Long)
    '设置表格列宽
    MSFlexGrid1.ColWidth(c) = w
End Property

Public Property Let ColControlType(c As Long, t As cType)
    '设置列修改控件;c:列;t:类型(0-text型,1-combo型,2-dtpicker型
    ControlType(c) = t
End Property

Public Function ClearComboData(c As Long)
    '清除列表框数据
    ComboVal(c, 0) = 0
End Function
Public Function AddComboItem(c As Long, sData As String)
    '设置列表框数据
    ComboVal(c, 0) = ComboVal(c, 0) + 1
    ComboVal(c, ComboVal(c, 0)) = sData
End Function

Public Property Get CellData(r As Long, c As Long) As String
    '获取单元格数据
    If r < 0 Or r > MSFlexGrid1.Rows Then Exit Property
    If c < 0 Or c > MSFlexGrid1.Cols Then Exit Property
    MSFlexGrid1.Row = r
    MSFlexGrid1.Col = c
    CellData = MSFlexGrid1.Text
End Property

Public Property Let CellData(r As Long, c As Long, data As String)
    '设置单元格数据
    If r < 0 Or r > MSFlexGrid1.Rows Then Exit Property
    If c < 0 Or c > MSFlexGrid1.Cols Then Exit Property
    MSFlexGrid1.Row = r
    MSFlexGrid1.Col = c
    MSFlexGrid1.Text = data
End Property

Public Property Get CurCellData() As String
    '获取当前单元格数据
    CurCellData = MSFlexGrid1.Text
End Property

Public Property Let CurCellData(data As String)
    '设置当前单元格数据
    On Error Resume Next
    MSFlexGrid1.Text = data
    Text1.Text = data
    Combo1.Text = data
    DTPicker1.Value = data
End Property

Public Property Get UseRows()
    '获取使用行数
    Dim i As Long
    Dim cNum As Long
    
    cNum = 0
    For i = 1 To MSFlexGrid1.Rows - 1
        MSFlexGrid1.Row = i
        MSFlexGrid1.Col = 0
        If MSFlexGrid1.Text = "" Then
            Exit For
        Else
            cNum = cNum + 1
        End If
    Next i
    UseRows = cNum
End Property

Public Function ClearCellText()
    '清除表格内容,表头除外
    Dim i As Long
    Dim j As Long
    For i = 1 To MSFlexGrid1.Rows - 1
        MSFlexGrid1.Row = i
        For j = 0 To MSFlexGrid1.Cols - 1
            MSFlexGrid1.Col = j
            MSFlexGrid1.Text = ""
        Next j
    Next i
End Function

Private Sub SetBackColor()
    '设置表格背景颜色
    Dim i As Long
    Dim j As Long
    
    MSFlexGrid1.BackColorFixed = RGB(176, 204, 188)
'    MSFlexGrid1.BackColorBkg = RGB(176, 204, 188)
    For i = MSFlexGrid1.FixedRows To MSFlexGrid1.Rows - 1
        MSFlexGrid1.Row = i
        If i Mod 2 = 0 Then
            For j = 0 To MSFlexGrid1.Cols - 1
                MSFlexGrid1.Col = j
                MSFlexGrid1.CellBackColor = RGB(225, 236, 255)
            Next j
        Else
            For j = 0 To MSFlexGrid1.Cols - 1
                MSFlexGrid1.Col = j
                MSFlexGrid1.CellBackColor = RGB(255, 255, 255)
            Next j
        End If
    Next i
End Sub

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -