摘要:LIBClassNew.vb - ClassStandardizeFormControl

"ClassStandardizeFormControl"#Region "ClassStandardizeFormControl" ' Used in : ROE , LOE...and so on
' History :
' 2009-09-03 : Developing
Public Class ClassStandardizeFormControl
Private msStyleInfoSearch As String = _
"Normal{Font:Microsoft Sans Serif, 10pt;BackColor:White;ForeColor:Green;}" & _
"Fixed{BackColor:Window;ForeColor:Black;Border:Flat,1,ActiveCaptionText,Both;}" & _
"Highlight{BackColor:ActiveCaption;ForeColor:Window;}" & _
"Focus{BackColor:ActiveCaption;ForeColor:Window;}"
Private msStyleInfoDefault As String = _
"Normal{Font:Microsoft Sans Serif, 11pt;BackColor:White;} " & _
"Fixed{BackColor:DarkSlateGray;ForeColor:White;Border:Flat,1,ControlDark,Both;BackgroundImageLayout:Hide;WordWrap:true; }" & _
"Highlight{BackColor:yellow;}" & _
"Focus{BackColor:yellow;}"

Sub New() New(ByVal psStyle As String)
Try
msStyleInfoDefault = psStyle
Catch Err As Exception
Call ErrHandler(Err.Message, APP_NAME)
End Try
End Sub
Property sGridStyleInfoDefault()
Get
Return msStyleInfoDefault
End Get
Set(ByVal value)
msStyleInfoDefault = value
End Set
End Property 
Public Sub SetC1GridStyle() Sub SetC1GridStyle(ByVal psStyle As String)
Try
msStyleInfoDefault = psStyle
Catch Err As Exception
Call ErrHandler(Err.Message, APP_NAME)
End Try
End Sub

"StandardizeControl_Master "#Region "StandardizeControl_Master "
' Standardize text box handler 
Public Sub StandardizeControl_Master() Sub StandardizeControl_Master(ByVal pform As System.Windows.Forms.Form) 
' Function to add common handler to all Text Box in the form () to add common handler to all Text Box in the form (Key up, Enter, Leave)

Private Function bStandardizeControl() Function bStandardizeControl(ByVal pControl As Control) As Boolean
bStandardizeControl = False
Try
If TypeOf pControl Is C1.Win.C1List.C1Combo Then
Dim lcCombo As C1.Win.C1List.C1Combo = pControl
lcCombo.AutoCompletion = True
lcCombo.AutoDropDown = True
lcCombo.Cursor = System.Windows.Forms.Cursors.Default
lcCombo.DropdownPosition = C1.Win.C1List.DropdownPositionEnum.LeftDown
lcCombo.EditorFont = lcCombo.Font
AddHandler pControl.Enter, AddressOf Standardize_TxtHandler_Enter
AddHandler pControl.Leave, AddressOf Standardize_TxtHandler_Leave
Else
Select Case pControl.GetType.Name
Case "TextBox", "C1TextBox", "UpDownEdit"
AddHandler pControl.KeyUp, AddressOf Standardize_TxtHandler_KeyUp
AddHandler pControl.Enter, AddressOf Standardize_TxtHandler_Enter
AddHandler pControl.Leave, AddressOf Standardize_TxtHandler_Leave
Case "C1FlexGrid"
Dim lcFlexGrid As C1.Win.C1FlexGrid.C1FlexGrid = pControl
Select Case lcFlexGrid.Tag
Case "False"
lcFlexGrid.StyleInfo = msStyleInfoDefault.Replace("WordWrap:true;", "WordWrap:false;")
Case "AdvancedSearch"
lcFlexGrid.StyleInfo = msStyleInfoSearch
Case "Localize"
Case Else
lcFlexGrid.StyleInfo = msStyleInfoDefault
End Select
End Select
End If
bStandardizeControl = True
Catch Err As Exception
Debug.Print(Me.GetType.ToString & " - " & Err.ToString)
End Try
End Function
#End Region
'reviewed
Try
pform.ImeMode = ImeMode.OnHalf
If pform.FormBorderStyle <> FormBorderStyle.FixedSingle Then
pform.FormBorderStyle = FormBorderStyle.FixedSingle
End If
Call nsControl.FormControlSearch(pform.Controls, AddressOf Me.bStandardizeControl)
Catch Err As Exception
Call ErrHandler(Err.Message, APP_NAME)
End Try
End Sub

" Handler "#Region " Handler " 
Private Sub Standardize_TxtHandler_Enter() Sub Standardize_TxtHandler_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs)
Try
Call HighlightOn(sender)
Catch Err As Exception
Call ErrHandler(Err.Message, APP_NAME)
End Try
End Sub 
Private Sub Standardize_TxtHandler_Leave() Sub Standardize_TxtHandler_Leave(ByVal sender As System.Object, ByVal e As System.EventArgs)
Try
Call HighlightOff(sender)
Catch Err As Exception
Call ErrHandler(Err.Message, APP_NAME)
End Try
End Sub 
Private Sub Standardize_TxtHandler_KeyUp() Sub Standardize_TxtHandler_KeyUp(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs)
Try
Call ReplaceSingleQuote(sender, e.KeyCode)
Catch Err As Exception
Call ErrHandler(Err.Message, APP_NAME)
End Try
End Sub

Overridable Sub HighlightOn() HighlightOn(ByVal objTarget As Object)
Try
If TypeOf (objTarget) Is C1.Win.C1List.C1Combo Then
objTarget.EditForeColor = System.Drawing.Color.Blue
objTarget.EditBackColor = System.Drawing.Color.Yellow
Else
objTarget.ForeColor = System.Drawing.Color.Blue
objTarget.BackColor = System.Drawing.Color.Yellow
End If
Catch Err As Exception
Call ErrHandler(Err.Message, APP_NAME)
End Try
End Sub

Overridable Sub HighlightOff() HighlightOff(ByVal objTarget As Object)
Try
If TypeOf (objTarget) Is C1.Win.C1List.C1Combo Then
objTarget.EditForeColor = System.Drawing.Color.Black
objTarget.EditBackColor = System.Drawing.Color.White
Else
objTarget.ForeColor = System.Drawing.Color.Black
objTarget.BackColor = System.Drawing.Color.White
End If
Catch Err As Exception
Call ErrHandler(Err.Message, APP_NAME)
End Try
End Sub
#End Region

Private Function bClearControl() Function bClearControl(ByVal pControl As Control) As Boolean
Try
If TypeOf pControl Is C1.Win.C1List.C1Combo Then
Dim lcCombo As C1.Win.C1List.C1Combo = pControl
lcCombo.Text = BLANK
lcCombo.ClearSelected()
ElseIf TypeOf pControl Is DateTimePicker Then
Dim ldtPicker As DateTimePicker = pControl
ldtPicker.Text = Now
ldtPicker.Checked = False
ElseIf TypeOf pControl Is TextBox Then
pControl.Text = BLANK
ElseIf TypeOf pControl Is CheckBox Then
Dim lchkBox As CheckBox = pControl
lchkBox.Checked = True
lchkBox.Checked = False
ElseIf TypeOf pControl Is RadioButton Then
Dim loptBox As RadioButton = pControl
loptBox.Checked = False
End If
Catch Err As Exception
Debug.Print(Me.GetType.ToString & " - " & Err.ToString)
End Try
End Function
End Class
#End Region

"nsControl"#Region "nsControl"
Namespace nsControl
Public Module mControl 
Public Sub FormAutoClose() Sub FormAutoClose(ByVal pform As Form, Optional ByVal piTimeOutInSecond As Integer = 60)
Try
Dim ClsAutoCloseFrom As New ClassAutoCloseFrom
ClsAutoCloseFrom.SetFrom(pform)
ClsAutoCloseFrom.SetTimerInterval(piTimeOutInSecond)
ClsAutoCloseFrom.StartTimer()
Catch Err As Exception
Call ErrHandler(Err.Message, APP_NAME)
End Try
End Sub 
Public Sub FormAutoClose() Sub FormAutoClose(ByVal pform As Form, ByVal pFunc As DFunc0, Optional ByVal piTimeOutInSecond As Integer = 60)
Try
Dim ClsAutoCloseFrom As New ClassAutoCloseFrom
ClsAutoCloseFrom.SetFunc(pFunc)
ClsAutoCloseFrom.SetFrom(pform)
ClsAutoCloseFrom.SetTimerInterval(piTimeOutInSecond)
ClsAutoCloseFrom.StartTimer()
Catch Err As Exception
Call ErrHandler(Err.Message, APP_NAME)
End Try
End Sub 
Public Sub FormControlSearch() Sub FormControlSearch(ByVal pControls As System.Windows.Forms.Control.ControlCollection, ByVal pDFunc1 As DFunc1)
Try
For Each lcControl As Control In pControls
If lcControl.Controls.Count > 0 Then
Call pDFunc1(lcControl)
Call FormControlSearch(lcControl.Controls, pDFunc1)
Else
Call pDFunc1(lcControl)
End If
Next
Catch Err As Exception
Call ErrHandler(Err.Message, APP_NAME)
End Try
End Sub 
Public Function bFormControlSearch() Function bFormControlSearch(ByVal pControls As System.Windows.Forms.Control.ControlCollection, ByVal pDFunc1 As DFunc1) As Boolean
bFormControlSearch = False
Try
For Each lcControl As Control In pControls
If lcControl.Controls.Count > 0 Then
If pDFunc1(lcControl) = False Then Exit Function
Call FormControlSearch(lcControl.Controls, pDFunc1)
Else
If pDFunc1(lcControl) = False Then Exit Function
End If
Next
bFormControlSearch = True
Catch Err As Exception
Call ErrHandler(Err.Message, APP_NAME)
End Try
End Function
End Module
End Namespace
#End Region
------------------
熱愛生命 喜愛新奇 有趣的事物
過去 是無法改變
將來 卻能夠創造
希望使大家生活更便利
世界更美好
a guy who loves IT and life