.NetでMaskEditのプロパティ
- 題名: .NetでMaskEditのプロパティ
- 著者: MoMoMo
- 日時: 2004/01/26 16:25:52
- ID: 2243
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: .NetでMaskEditのマスクエディットのTextプロパティでは、値の取得も設定もプロパティ
- 著者: keny
- 日時: 2004/01/27 22:39:11
- ID: 2269
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[2]: .NetでMaskEditのマスクエディットのTextプロパティでは、値の取得も設定もプロパティ
- 著者: 管理人
- URL: http://dobon.net
- 日時: 2004/01/28 2:48:39
- ID: 2270
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[2]: .NetでMaskEditのマスクエディットのTextプロパティでは、値の取得も設定もプロパティ
- 著者: keny
- 日時: 2004/01/28 8:42:40
- ID: 2271
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[1]: .NetでMaskEditのプロパティ
- 著者: MoMoMo
- 日時: 2004/01/28 11:15:21
- ID: 2273
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[1]: .NetでMaskEditのプロパティ
- 著者: よねKEN
- 日時: 2004/01/28 12:09:41
- ID: 2274
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[2]: .NetでMaskEditのプロパティ(defaultText)
- 著者: MoMoMo
- 日時: 2004/01/28 13:04:13
- ID: 2276
- この記事の返信元:
- この記事への返信:
- ツリーを表示
分類:[.NET]
現在、,NetでAxMsMask.AxMSEdBox(以下 マスクエディット)を使用しています。
マスクは"####/##/##"になっています。
フォーム上に二つのマスクエディット(medDate1,medDate2)と、
その他のコントロールがあります。
1.medDate1でEnterキーが押された時、KeyPressイベントで次のmedDate2に
フォーカスを移動。medDate2でEnterキーが押された時、次のコントロールに移動
2.medDate1からmedDate2のコントロールにフォーカスが移動する時、
medDate2の値が空だったら、前のmedDate1の値をmedDate2にコピー。
というコードを書いています。
medDate1のLeaveイベント、またはmedDate2のEnterイベントで、
medDate2の値をCtlText、ClipText、SelTextなどを使用して
値を取得するコードが存在すると、
medData1からmedData2にEnterキーで移動(1)、
medData2から次のコントロールににEnterキーで移動(2)、
した時に、(2)の段階で、medData2に入っていた値が消えて
しまいます。
ただし、この現象がおきるのは、medData2に値が途中までのみ
入っていた場合です。"2003/01/01"などのように、全て入力
済みの場合は起きません。
また、TABキーで移動した場合も起きません。
同じような現象に見舞われたりなどで、解決策を知っている方は
いらっしゃらないでしょうか。
ちなみにマスクエディットのTextプロパティでは、値の取得も設定も
できませんでした。
以下がそのコードになります。
フォームにマスクエディット二つ(medDate1,medDate2)とテキスト
ボックス(TextBox1)を置いてください。
Private Sub medDate1_KeyPressEvent _
(ByVal sender As System.Object, _
ByVal e As AxMSMask.MaskEdBoxEvents_KeyPressEvent) _
Handles medDate1.KeyPressEvent
If (CChar(Chr(e.keyAscii)) = Microsoft.VisualBasic.ChrW(13)) Then
If (Me.medDate2.CanFocus = True) Then Me.medDate2.Focus()
End If
End Sub
Private Sub medDate2_KeyPressEvent _
(ByVal sender As System.Object, _
ByVal e As AxMSMask.MaskEdBoxEvents_KeyPressEvent) _
Handles medDate2.KeyPressEvent
If (CChar(Chr(e.keyAscii)) = Microsoft.VisualBasic.ChrW(13)) Then
If (Me.TextBox1.CanFocus = True) Then Me.TextBox1.Focus()
End If
End Sub
Private Sub TextBox1_KeyPress_
(ByVal sender As Object, _
ByVal e As System.Windows.Forms.KeyPressEventArgs) _
Handles TextBox1.KeyPress
If (e.KeyChar = Microsoft.VisualBasic.ChrW(13)) Then
If (Me.medDate1.CanFocus = True) Then Me.medDate1.Focus()
End If
End Sub
Private Sub medDate1_Leave _
(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles medDate1.Leave
If (Me.ActiveControl Is Me.medDate2) Then
If (medDate2.ClipText.Trim = "") Then '---※
Me.medDate2.CtlText = Me.medDate1.CtlText
End If
End If
End Sub
※--ここで値を取得しなければ蒸気のような現象は発生しません。