|
帮个忙,请教一下,谢谢!
想要获得一个万年历的效果
Option Explicit //这里的定义不知道对不对
Dim yr, mon As Integer
Private Const rnum = 7
Private Const cnum = 7
Public Sub setfomat() //设置MSFlexGrid1控件的属性
Dim i, j, w, h As Integer
MSFlexGrid1.ScrollBars = 0
MSFlexGrid1.FixedCols = 0
MSFlexGrid1.Rows = rnum //行列为7
MSFlexGrid1.Cols = cnum
w = (MSFlexGrid1.Width - 10) / cnum
h = MSFlexGrid1.Height / rnum
For i = 0 To rnum - 1 //设置方格的高宽
MSFlexGrid1.ColWidth(i) = w
MSFlexGrid1.RowHeight(i) = h
MSFlexGrid1.FixedAlignment(i) = 2
Next
End Sub
Public Sub sethead() //设置表头的内容
Dim i, j As String
Dim dayname(cnum - 1) As String
dayname(0) = "星期日"
dayname(1) = "星期一"
dayname(2) = "星期二"
dayname(3) = "星期三"
dayname(4) = "星期四"
dayname(5) = "星期五"
dayname(6) = "星期六"
MSFlexGrid1.Row = 0
For i = 0 To cnum - 1
MSFlexGrid1.Col = i
MSFlexGrid1.CellForeColor = RGB(255, 0, 0)
MSFlexGrid1.Text = Day(i)
Next
End Sub
Public Sub calendar()
Dim i, firstday, num_day As Integer
Dim d As Data
firstday = DateSerial(yr, mon, 1)
num_day = DatePart("w", firstday)
MSFlexGrid1.Row = 1
MSFlexGrid1.Col = num_day - 1
For i = 1 To 31
d = DateSerial(yr, mon, i) //这里老出错,是不是和上面定义有关
If Month(d) <> mon Then
Exit For
Else
If MSFlexGrid1.Col = 6 And i <> i Then
MSFlexGrid1.Row = MSFlexGrid1.Row + 1
MSFlexGrid1.Col = 0
ElseIf i <> 1 Then
MSFlexGrid1.Col = MSFlexGrid1.Col + 1
End If
End If
MSFlexGrid1.Text = i
If Day(Name) = i Then
MSFlexGrid1.CellBackColor = RGB(255, 255, 0)
End If
Next
MSFlexGrid1.Row = rnum - 1
MSFlexGrid1.Col = cnum - 2
MSFlexGrid1.Text = yr & "年"
MSFlexGrid1.Col = cnum - 1
MSFlexGrid1.Text = mon & "月"
End Sub
Private Sub Form_Load()
MSFlexGrid1.Clear
setfomat
sethead
yr = Year(Date)
mon = Month(Date)
calendar
End Sub
Private Sub MSFlexGrid1_DblClick()
Dim s, filename As String
s = MSFlexGrid1.Text
If Len(s) > 0 Then
filename = yr & mon & s & ".txt"
Shell "notepad" & "" & filename, vbNormalFocus
End If
End Sub
程序里有个MSFlexGrid控件-》MICROSOFT FIEXGRID CONTROL6.0
col=7,row=7
fixcol=0
fixrow=1 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|