Imports System.ComponentModel Imports System.IO Imports System.Windows.Forms Imports YeWuBill
Public Class TwoLed Inherits System.Windows.Forms.PictureBox
'切记 属性必须对其赋值,否则导致系统崩溃。
Public Enum TwoLedState None_Led = 0 'XF Right_Led = 1 'XB Mid_Led = 2 'XD Mid_Right_Led = 3 'X9 Left_Led = 4 'XE Left_Right_Led = 5 'XA Left_Mid_Led = 6 'XC Left_Mid_Right_Led = 7 'X8 Bad_Led = 8 '坏了 End Enum
Dim AddStated As Boolean Dim SaveStated As Boolean
''' <summary> ''' 灯塔号 ''' </summary> ''' <remarks></remarks>
Private mvarTitle As String = "1#灯塔" <Browsable(True)> _ Public Property Title() As String Get Return mvarTitle End Get Set(ByVal value As String) mvarTitle = value Me.Invalidate() End Set End Property
''' <summary> ''' 灯塔地址 ''' </summary> ''' <remarks></remarks> Private mvarAddress As Integer = 1 <Browsable(True)> _ Public Property Address() As Integer Get Return mvarAddress End Get Set(ByVal value As Integer) mvarAddress = value Me.Invalidate() End Set End Property
''' <summary> ''' 启动状态 ''' </summary> ''' <remarks></remarks> Private mvarStartState = True Public Property StartState() As Boolean Get Return mvarStartState End Get Set(ByVal value As Boolean) mvarStartState = value Me.Invalidate() End Set End Property
''' <summary> ''' 灯的输入字符,表示灯的输入状态 ''' </summary> ''' <remarks></remarks> Private mvarIOin As String = "0F" <Browsable(True)> _ Public Property IOin() As String Get Return mvarIOin End Get Set(ByVal value As String) mvarIOin = value End Set End Property
''' <summary> ''' 灯的输出字符,表示灯的输出状态 ''' </summary> ''' <remarks></remarks> Private mvarIOout As String = "00" <Browsable(True)> _ Public Property IOout() As String Get Return mvarIOout End Get Set(ByVal value As String) mvarIOout = value End Set End Property
''' <summary> ''' 灯的通道数量 ''' </summary> ''' <remarks></remarks> Private mavChannelNum As Integer = 3 <Browsable(True)> _ Public Property ChannelNum() As Integer Get Return mavChannelNum End Get Set(ByVal value As Integer) mavChannelNum = value Me.Invalidate() End Set
End Property
''' <summary> ''' 灯塔值 ''' </summary> ''' <remarks></remarks> Private mvarValue As TwoLedState = TwoLedState.None_Led Public Property LedValue() As TwoLedState Get Return mvarValue End Get Set(ByVal mValue As TwoLedState) mvarValue = mValue If mValue = 0 Then Me.Image = My.Resources._0_0_0 'XF ElseIf mValue = 1 Then Me.Image = My.Resources._0_0_1 'XB ElseIf mValue = 2 Then Me.Image = My.Resources._0_1_0 'XD ElseIf mValue = 3 Then Me.Image = My.Resources._0_1_1 'X9 ElseIf mValue = 4 Then Me.Image = My.Resources._1_0_0 'XE ElseIf mValue = 5 Then Me.Image = My.Resources._1_0_1 'XA ElseIf mValue = 6 Then Me.Image = My.Resources._1_1_0 'XC ElseIf mValue = 7 Then Me.Image = My.Resources._1_1_1 'X08 ElseIf mValue = 8 Then Me.Image = My.Resources.x_x_x End If If mValue <> TwoLedState.None_Led And Not AddStated Then AddData() AddStated = True SaveStated = False End If If mValue = TwoLedState.None_Led And Not SaveStated And AddStated Then SaveData() SaveStated = True AddStated = False End If Me.Invalidate() End Set End Property
'添加提示信息 Private Sub TwoLed_MouseHover(ByVal sender As Object,ByVal e As System.EventArgs) Handles Me.MouseHover Dim mTooltip As New ToolTip If mvarAddress > 0 Then mTooltip.SetToolTip(Me,"标题:" & mvarTitle.ToString & "通道号:" & mavChannelNum.ToString) End If End Sub
'Private Sub TwoLed_MouseDoubleClick(ByVal sender As Object,ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseDoubleClick ' If Me.Enabled Then ' Dim frm As New FrmLedKZ ' ' frm.Text = "地址:" & Me.Address ' mvarAddress ' frm.TwoLed1 = Me 'me的引用最为关键呀 ' frm.Text = Address ' frm.ShowDialog() ' Else ' MsgBox("系统无电或信号不正常!,请检查") ' End If 'End Sub
Private Sub MyPic_Paint(ByVal sender As Object,ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint Me.SizeMode = PictureBoxSizeMode.StretchImage End Sub
Public Sub New()
' 此调用是 Windows 窗体设计器所必需的。 InitializeComponent() Me.Image = My.Resources._0_0_0
'此处为透明背景 Me.BackColor = Color.Transparent ' 在 InitializeComponent() 调用之后添加任何初始化。
End Sub
Private Sub AddData()
Dim Myfun As New ClsTbLedOpenTime If Myfun.ExistBy(Me.Title,1) Then Myfun.ModifyOpenLedTime(Me.Title,1) Else Myfun.AddOpenLedTime(Me.Title,1) End If
Myfun = Nothing End Sub
Private Sub SaveData() Dim Mydata As New tbLedTimed Dim Myfun1 As New ClsTbLedOpenTime Dim Myfun As New ClsTbLedTimed Dim TmpDate1 As Date
TmpDate1 = Myfun1.ReadLedOpenTime(Me.Title)
Mydata.灯名称 = Me.Title Mydata.关灯时间 = Now Mydata.开灯时间 = TmpDate1 Mydata.合计时间 = DateDiff(DateInterval.Minute,TmpDate1,Now)
Myfun.AddOpenLedTime(Mydata)
End Sub
End Class (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|