|
Public Shared validateNone As Boolean = False
' ******************************************************
' validate コントロール用
' ******************************************************
Protected Overloads Overrides Sub OnValidating( _
ByVal e As System.ComponentModel.CancelEventArgs)
' ******************************************************
' validateNone が True ならば、Valdating は発生しない
' ******************************************************
If Not validateNone Then
If Me.Enabled = True Then
MyBase.OnValidating(e)
End If
End If
End Sub
Protected Overloads Overrides Sub OnValidated( _
ByVal e As System.EventArgs)
' ******************************************************
' validateNone が True ならば、Validated は発生しない
' ******************************************************
If Not validateNone Then
If Me.Enabled = True Then
MyBase.OnValidated(e)
End If
End If
End Sub
' ******************************************************
' コントロールの初期化
' ******************************************************
Protected Overrides Sub OnCreateControl()
Me.DropDownStyle = Windows.Forms.ComboBoxStyle.DropDownList
MyBase.OnCreateControl()
End Sub
' ******************************************************
' データ追加
' ******************************************************
Public Sub Add(ByVal text As String, ByVal value As String)
Me.Items.Add(New DataClass(text, value))
End Sub
' ******************************************************
' 選択
' ******************************************************
Public Sub SelectByValue(ByVal value As String)
Dim max As Integer = Me.Items.Count
For i As Integer = 0 To max - 1
If CType(Me.Items(i), DataClass).Value = value Then
Me.SelectedIndex = i
Exit For
End If
Next
End Sub
' ******************************************************
' 選択
' ******************************************************
Public Sub SelectByText(ByVal text As String)
Me.SelectedIndex = Me.FindString(text)
End Sub
' ******************************************************
' データクリア
' ******************************************************
Public Sub Clear()
Me.Items.Clear()
End Sub
' ******************************************************
' データ保存用
' ******************************************************
Private Class DataClass
Public Text As String
Public Value As Object
Public Sub New(ByVal _text As String, ByVal _value As Object)
Me.Text = _text
Me.Value = _value
End Sub
Public Overrides Function ToString() As String
Return Text
End Function
End Class
' ******************************************************
' カスタムチェックタイプ
' ******************************************************
Private _CheckType As Integer = 0
<System.ComponentModel.Description("0:なし" & Chr(10) & "1:必須入力"), _
System.ComponentModel.DefaultValue(0)> _
Public Property CheckType() As Integer
Get
Return _CheckType
End Get
Set(ByVal value As Integer)
_CheckType = value
End Set
End Property
' ******************************************************
' SQL編集用のDBデータ型
' ******************************************************
Private _DbDataType As Integer = 0
<System.ComponentModel.Description( _
"0:文字列・日付" & Chr(10) & _
"1:数値" & Chr(10) & _
"2:NULL 時 0" & Chr(10) & _
"3:NULL 時 Defalut(文字列・日付)" & Chr(10) & _
"4:NULL 時 Defalut(数値)" _
), _
System.ComponentModel.DefaultValue(0)> _
Public Property DbType() As Integer
Get
Return _DbDataType
End Get
Set(ByVal value As Integer)
_DbDataType = value
End Set
End Property
' ******************************************************
' SQL用デフォルトデータ
' ******************************************************
Private _DbDefault As String = "0"
Public Property DbDefault() As String
Get
Return _DbDefault
End Get
Set(ByVal value As String)
_DbDefault = value
End Set
End Property
' ******************************************************
' SQL用文字列としてのデータ
' ******************************************************
Public ReadOnly Property DbText() As String
Get
If _DbDataType = 0 Then
If Me.SelectedIndex = -1 Then
Return "NULL"
Else
Return "'" + Me.SelectedValue + "'"
End If
End If
If _DbDataType = 1 Then
If Me.SelectedIndex = -1 Then
Return "NULL"
Else
Return Me.SelectedValue
End If
End If
If _DbDataType = 2 Then
If Me.SelectedIndex = -1 Then
Return "0"
Else
Return Me.SelectedValue
End If
End If
If _DbDataType = 3 Then
If Me.SelectedIndex = -1 Then
Return _DbDefault
Else
Return "'" + Me.SelectedValue + "'"
End If
End If
If _DbDataType = 4 Then
If Me.SelectedIndex = -1 Then
Return _DbDefault
Else
Return Me.SelectedValue
End If
End If
Return Me.SelectedValue
End Get
End Property
' ******************************************************
' 選択された値
' ******************************************************
Public Shadows Property SelectedValue() As String
Get
If Me.SelectedIndex <> -1 Then
Return CType(Me.Items(Me.SelectedIndex), DataClass).Value
Else
Return ""
End If
End Get
Set(ByVal value As String)
If Me.SelectedIndex <> -1 Then
CType(Me.Items(Me.SelectedIndex), DataClass).Value = value
End If
End Set
End Property
' ******************************************************
' 選択されたテキスト
' ******************************************************
Public Shadows Property SelectedText() As String
Get
Return CType(Me.Items(Me.SelectedIndex), DataClass).Text
End Get
Set(ByVal value As String)
CType(Me.Items(Me.SelectedIndex), DataClass).Text = value
End Set
End Property
' ******************************************************
' 同一処理支援
' ******************************************************
Private _Group As Integer = 1
<System.ComponentModel.DefaultValue(1)> _
Public Property Group() As Integer
Get
Return _Group
End Get
Set(ByVal value As Integer)
_Group = value
End Set
End Property
' ******************************************************
' 全体のチェック
' ******************************************************
Private Sub LboxCombo_Validating(ByVal sender As System.Object, _
ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Validating
' 必須入力
If Me._CheckType = 1 Then
If Me.SelectedIndex = -1 Then
MessageBox.Show("必須入力です ", _
"エラー", MessageBoxButtons.OK, MessageBoxIcon.Error)
e.Cancel = True
End If
End If
End Sub
| |