111 lines
4.1 KiB
VB.net
111 lines
4.1 KiB
VB.net
Imports System
|
|
Imports System.ComponentModel
|
|
Imports System.Collections.Generic
|
|
Imports System.Diagnostics
|
|
Imports System.Text
|
|
|
|
Imports DevExpress.ExpressApp
|
|
Imports DevExpress.ExpressApp.Actions
|
|
Imports DevExpress.Persistent.Base
|
|
Imports DevExpress.ExpressApp.Editors
|
|
Imports System.Windows.Forms
|
|
Imports DevExpress.XtraLayout
|
|
|
|
|
|
Public Class DateTimeHandle
|
|
Inherits DevExpress.ExpressApp.ViewController
|
|
|
|
Public Sub New()
|
|
MyBase.New()
|
|
|
|
'This call is required by the Component Designer.
|
|
InitializeComponent()
|
|
RegisterActions(components)
|
|
TargetViewType = ViewType.DetailView
|
|
|
|
End Sub
|
|
Protected Overloads Overrides Sub OnActivated()
|
|
MyBase.OnActivated()
|
|
For Each editor As PropertyEditor In (CType(View, DetailView)).GetItems(Of PropertyEditor)()
|
|
|
|
AddHandler editor.ControlCreated, AddressOf editor_ControlCreated
|
|
Next editor
|
|
|
|
End Sub
|
|
Private Sub editor_ControlCreated(ByVal sender As Object, ByVal e As EventArgs)
|
|
' You can access the corresponding property editor control by the following code:
|
|
Dim editorControl As Control = TryCast((CType(sender, PropertyEditor)).Control, Control)
|
|
AddHandler editorControl.HandleCreated, AddressOf editorControl_HandleCreated
|
|
|
|
Dim _DateTimeEditor As DevExpress.XtraEditors.DateEdit = TryCast(editorControl, DevExpress.XtraEditors.DateEdit)
|
|
If _DateTimeEditor IsNot Nothing Then
|
|
_DateTimeEditor.Properties.Mask.MaskType = DevExpress.XtraEditors.Mask.MaskType.DateTimeAdvancingCaret
|
|
AddHandler _DateTimeEditor.Click, AddressOf DateTimeEditor_Click
|
|
AddHandler _DateTimeEditor.KeyDown, AddressOf DateTimeEditor_KeyDown
|
|
|
|
End If
|
|
Dim _SpinEditor As DevExpress.XtraEditors.SpinEdit = TryCast(editorControl, DevExpress.XtraEditors.SpinEdit)
|
|
If _SpinEditor IsNot Nothing Then
|
|
AddHandler _SpinEditor.Click, AddressOf SpinEditor_Click
|
|
AddHandler _SpinEditor.KeyDown, AddressOf SpinEditor_KeyDown
|
|
End If
|
|
|
|
Dim _TextEditor As DevExpress.XtraEditors.TextEdit = TryCast(editorControl, DevExpress.XtraEditors.TextEdit)
|
|
If _TextEditor IsNot Nothing Then
|
|
AddHandler _TextEditor.KeyDown, AddressOf TextEditor_KeyDown
|
|
|
|
|
|
End If
|
|
End Sub
|
|
Private Sub editorControl_HandleCreated(ByVal sender As Object, ByVal e As EventArgs)
|
|
' Sometimes it is necessary to access editor's control after it is visible (its handle is created).
|
|
RemoveHandler (CType(sender, Control)).HandleCreated, AddressOf editorControl_HandleCreated
|
|
End Sub
|
|
|
|
Private Sub DateTimeEditor_Click(ByVal sender As Object, ByVal e As System.EventArgs)
|
|
sender.SelectAll()
|
|
End Sub
|
|
Private Sub SpinEditor_Click(ByVal sender As Object, ByVal e As System.EventArgs)
|
|
sender.Selectall()
|
|
End Sub
|
|
|
|
Private Sub DateTimeEditor_KeyDown(sender As Object, e As KeyEventArgs)
|
|
Select Case e.KeyCode
|
|
Case Keys.Enter, Keys.Down
|
|
DirectCast(View.Control, LayoutControl).FocusHelper.GetNextControl(sender).Focus()
|
|
e.Handled = True
|
|
Case Else
|
|
|
|
End Select
|
|
End Sub
|
|
|
|
Private Sub SpinEditor_KeyDown(sender As Object, e As KeyEventArgs)
|
|
Select Case e.KeyCode
|
|
Case Keys.Enter, Keys.Down
|
|
DirectCast(View.Control, LayoutControl).FocusHelper.GetNextControl(sender).Focus()
|
|
e.Handled = True
|
|
Case Else
|
|
|
|
End Select
|
|
End Sub
|
|
|
|
Private Sub TextEditor_KeyDown(sender As Object, e As KeyEventArgs)
|
|
If TryCast(sender, DevExpress.ExpressApp.Win.Editors.LargeStringEdit) IsNot Nothing Then
|
|
Else
|
|
Select Case e.KeyCode
|
|
Case Keys.Enter, Keys.Down
|
|
DirectCast(View.Control, LayoutControl).FocusHelper.GetNextControl(sender).Focus()
|
|
e.Handled = True
|
|
Case Keys.Up
|
|
DirectCast(View.Control, LayoutControl).FocusHelper.ProcessDialogKey(Keys.Shift + Keys.Tab)
|
|
e.Handled = True
|
|
Case Else
|
|
|
|
End Select
|
|
End If
|
|
|
|
|
|
End Sub
|
|
|
|
End Class
|