掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
オブジェクト指向について (ID:146231)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
ネタ的に [VB2008] Public Class ColorTimer Private _ColorsNow As Colors Private WithEvents _myTimer As Timer Private _EmergencyCount As Integer Public Event ColorChange(ByVal ColorX As System.Drawing.Color) Public Enum Colors SetUp Nomal Emergency1 Emergency2 TimeOut End Enum Sub New() _myTimer = New Timer Call Reset() End Sub Public Sub Reset() _ColorsNow = Colors.SetUp _EmergencyCount = 0 _myTimer.Interval = 3 _myTimer.Start() End Sub Public Function GetColors(ByVal Index As Colors) As System.Drawing.Color Select Case Index Case Colors.Nomal Return Color.Lime Case Colors.Emergency1 Return Color.Red Case Colors.Emergency2 Return Color.White Case Colors.TimeOut Return Color.Gray Case Else Return Color.Black End Select End Function Public ReadOnly Property ColorsNow() As System.Drawing.Color Get Debug.WriteLine(Me._ColorsNow) Return GetColors(Me._ColorsNow) End Get End Property Private Sub _myTimer_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles _myTimer.Tick With DirectCast(sender, Timer) .Stop() Select Case Me._ColorsNow Case Colors.SetUp Me._ColorsNow = Colors.Nomal RaiseEvent ColorChange(ColorsNow) _myTimer.Interval = 3 * 60 * 1000 '_myTimer.Interval = 3 * 1000 .Start() Case Colors.Nomal Me._ColorsNow = Colors.Emergency1 RaiseEvent ColorChange(ColorsNow) .Interval = 1000 .Start() Case Colors.Emergency1, Colors.Emergency2 Me._EmergencyCount += 1 If Me._EmergencyCount > 30 Then Me._ColorsNow = Colors.TimeOut ElseIf Me._ColorsNow = Colors.Emergency1 Then Me._ColorsNow = Colors.Emergency2 Else Me._ColorsNow = Colors.Emergency1 End If RaiseEvent ColorChange(ColorsNow) .Start() Case Else '終了 End Select End With End Sub End Class
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.