📄 form1.vb
字号:
Public Class dt
'声名一个全局数组存储hasSavingsTime的属性
Public Shared hasSavingsTime(49) As Boolean
Public Shared dMyDate As DateTime = DateTime.Now ' 获取当前时间
Public Shared tnsecvalue As Int16 '变量用于判断上午和下午
Public Shared monthvalue As Integer '用来显示月份的index
Public Shared buttontype As String '存储用户单击button的类型
Public Shared year As Int16 '存储修改的年份
Dim flag As Integer
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.Timer1.Enabled = True
Me.Timer1.Interval = 1000
Dim i As Int16
For i = 0 To 49
hasSavingsTime(i) = True
Next i
hasSavingsTime(0) = False ' (GMT -12:00) Eniwetok, Kwajalein
hasSavingsTime(1) = False ' (GMT -11:00) Midway Island, Samoa
hasSavingsTime(2) = False ' (GMT -10:00) Hawaii
hasSavingsTime(5) = False ' (GMT -07:00) Arizona
hasSavingsTime(8) = False ' (GMT -06:00) Mexico City, Tegucigalpa
hasSavingsTime(9) = False ' (GMT -06:00) Saskatchewan
hasSavingsTime(10) = False ' (GMT -05:00) Bogota, Lima
hasSavingsTime(12) = False ' (GMT -05:00) Indiana (East)
hasSavingsTime(14) = False ' (GMT -04:00) Caracas, La Paz
hasSavingsTime(17) = False ' (GMT -03:00) Buenos Aires, Georgetown
hasSavingsTime(21) = False ' (GMT +00:00) Monrovia, Casablanca
hasSavingsTime(28) = False ' (GMT +02:00) Harare, Pretoria
hasSavingsTime(30) = False ' (GMT +03:00) Baghdad, Kuwait, Nairobi, Riyadh
hasSavingsTime(33) = False ' (GMT +04:00) Abu Dhabi, Muscat, Tbilisi
hasSavingsTime(34) = False ' (GMT +04:30) Kabul
hasSavingsTime(35) = False ' (GMT +05:00) Islamabad, Karachi, Ekaterinburg, Tashkent
hasSavingsTime(36) = False ' (GMT +05:30) Bombay, Calcutta, Madras, New Delhi, Colombo
hasSavingsTime(37) = False ' (GMT +06:00) Almaty, Dhaka
hasSavingsTime(38) = False ' (GMT +07:00) Bangkok, Jakarta, Hanoi
hasSavingsTime(40) = False ' (GMT +08:00) Hong Kong, Perth, Singapore, Taipei
hasSavingsTime(41) = False ' (GMT +09:00) Tokyo, Osaka, Sapporo, Seoul, Yakutsk
hasSavingsTime(43) = False ' (GMT +09:30) Darwin
hasSavingsTime(45) = False ' (GMT +10:00) Guam, Port Moresby, Vladivostok
hasSavingsTime(47) = False ' (GMT +11:00) Magadan, Solomon Is., New Caledonia
hasSavingsTime(48) = False ' (GMT +12:00) Fiji, Kamchatka, Marshall Is.
'对个控件进行初值的初始化
AxCalendar2.Year = dMyDate.Year
AxCalendar2.Month = dMyDate.Month
AxCalendar2.Day = dMyDate.Day
tnSec.Text = dMyDate.Second.ToString()
tbMin.Text = dMyDate.Minute.ToString()
Dim tnsecvalue As Int16
tnsecvalue = dMyDate.Hour
If tnsecvalue > 12 Then
tnsecvalue = tnsecvalue - 12
tbHour.Text = tnsecvalue.ToString()
RadioButton2.Select()
Else
tbHour.Text = tnsecvalue.ToString()
RadioButton1.Select()
End If
nnupHour.Value = Convert.ToInt16(tnsecvalue)
nnupMin.Value = Convert.ToInt16(dMyDate.Minute)
nnupSec.Value = Convert.ToInt16(dMyDate.Second)
tbYear.Text = AxCalendar2.Year.ToString()
monthvalue = Convert.ToInt32(AxCalendar2.Month) - 1
cbMonth.SelectedIndex = monthvalue
nupYear.Value = Convert.ToInt16(AxCalendar2.Year)
Label4.Text = "Current Time Zone:" + ComboBox1.Text
End Sub
Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
'按照hasSavingsTime的属性决定是否Enable CheckBox1
If hasSavingsTime(ComboBox1.SelectedIndex) = False Then
CheckBox1.Enabled = False
Else
CheckBox1.Enabled = True
End If
Label4.Text = "Current Time Zone:" + ComboBox1.Text
flag = ComboBox1.SelectedIndex
PictureBox1.Refresh()
End Sub
Private Sub btOK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btOK.Click
'设置button类型为OK并显示对话框
buttontype = "OK.."
showmsg()
Application.Exit()
End Sub
Private Sub btCabcel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
'设置button类型为并显示对话框
buttontype = "Canceled.."
showmsg()
Application.Exit()
End Sub
Private Sub btApply_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btApply.Click
'设置button类型为并显示对话框
buttontype = "Applied.."
showmsg()
End Sub
Private Sub showmsg()
'实现对话框的显示
Dim x As Int16
x = ComboBox1.SelectedIndex
ComboBox2.SelectedIndex = x
Dim str As String
str = ComboBox2.Text
Dim showstr As String
showstr = buttontype + "..." & vbCrLf & "=====================================" & vbCrLf & "Year= " + tbYear.Text
showstr += "" & vbCrLf & "Month= " + (cbMonth.SelectedIndex + 1).ToString()
showstr += "" & vbCrLf & "Day= " + AxCalendar2.Day.ToString()
showstr += "" & vbCrLf & "Hour= " + tbHour.Text
showstr += "" & vbCrLf & "Minute= " + tbMin.Text
showstr += "" & vbCrLf & "Second= " + tnSec.Text
showstr += "" & vbCrLf & "Timezone=" + ComboBox1.Text + "" & vbCrLf & "Offset from GMT=" + str
showstr += "" & vbCrLf & "Auto daylight = " + hasSavingsTime(ComboBox1.SelectedIndex).ToString()
showstr += "" & vbCrLf & "====================================="
showstr += "" & vbCrLf & "Time not saved.."
MessageBox.Show(showstr, "Exercise6", MessageBoxButtons.OK)
End Sub
Private Sub cbMonth_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cbMonth.SelectedIndexChanged
'实现日历中月份与ComboBox中显示月份的同步
Dim month As Int16
month = cbMonth.SelectedIndex + 1
AxCalendar2.Month = month
End Sub
Private Sub nnupHour_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles nnupHour.ValueChanged
'实现小时的同步
tbHour.Text = nnupHour.Value.ToString()
End Sub
Private Sub nupYear_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles nupYear.ValueChanged
'实现日历中年份与nupYear中显示年份的同步
tbYear.Text = nupYear.Value.ToString()
year = Convert.ToInt16(tbYear.Text)
If Not nupYear.Value = 1800 Then
AxCalendar2.Year = year
End If
End Sub
Private Sub nnupMin_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles nnupMin.ValueChanged
'实现分钟的同步
tbMin.Text = nnupMin.Value.ToString()
End Sub
Private Sub nnupSec_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles nnupSec.ValueChanged
'实现秒钟的同步
tnSec.Text = nnupSec.Value.ToString()
End Sub
Private Sub PictureBox1_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles PictureBox1.Paint
Dim units As GraphicsUnit = GraphicsUnit.Pixel
Select Case flag
Case 0
Dim srcRect As New Rectangle(0, 0, 540, 184)
e.Graphics.DrawImage(My.Resources.timezone_map, 0, 0, srcRect, units)
Case 1, 2, 3, 4, 5
Dim srcRect As New Rectangle(15 * flag, 0, 540 - 15 * flag, 184)
Dim rec As New Rectangle(540, 0, 15 * flag, 180)
e.Graphics.DrawImage(My.Resources.timezone_map, 0, 0, srcRect, units)
e.Graphics.DrawImage(My.Resources.timezone_map, 540 - 15 * flag, 0, rec, units)
Case 6, 37
Dim srcRect As New Rectangle(15 * 5, 0, 540 - 15 * 5, 184)
Dim rec As New Rectangle(540, 0, 15 * 5, 184)
e.Graphics.DrawImage(My.Resources.timezone_map, 0, 0, srcRect, units)
e.Graphics.DrawImage(My.Resources.timezone_map, 540 - 15 * 5, 0, rec, units)
Case 7, 8, 9, 38
Dim srcRect As New Rectangle(15 * 6, 0, 540 - 15 * 6, 184)
Dim rec As New Rectangle(540, 0, 15 * 6, 184)
e.Graphics.DrawImage(My.Resources.timezone_map, 0, 0, srcRect, units)
e.Graphics.DrawImage(My.Resources.timezone_map, 540 - 15 * 6, 0, rec, units)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -