DOBON.NET DOBON.NETプログラミング掲示板過去ログ

MaskedTextBoxでカレット位置に応じて選択状態にしたい

環境/言語:[vb.net2005]
分類:[.NET]

MaskedTextBoxを使ってDateTimePickerモドキを作っていますが
DateTimePickerの様にカレットを移動するとその都度選択状態に
したいのです

具体的には
00年00月00日
の1桁目にカレットがある時は年の00が選択状態
4桁目に来たら月の00が選択状態
7桁目に来たら日の00が選択状態
になるようにしたいのですがカレットの移動をどうやって取得すれば
いいのかがわかりません

よろしくお願いいたします
■No30554に返信(空虚メーカーさんの記事)

カレット位置の変更に対するイベントはどのように取得するかは
別ですが
SelectionStart, SelectionLengthプロパティで選択状態を調整することが出来ます。

とりあえずクリックでの選択状態設定です。
   Private Sub MaskedTextBox1_Click(sender As Object, e As System.EventArgs) Handles MaskedTextBox1.Click
        Dim intStart = MaskedTextBox1.SelectionStart

        Select Case intStart
            Case 0 To 3
                MaskedTextBox1.SelectionStart = 0
                MaskedTextBox1.SelectionLength = 4
            Case 4 To 6
                MaskedTextBox1.SelectionStart = 5
                MaskedTextBox1.SelectionLength = 2
            Case 7 To 10
                MaskedTextBox1.SelectionStart = 8
                MaskedTextBox1.SelectionLength = 2
        End Select
    End Sub
■No30560に返信(shuさんの記事)
> ■No30554に返信(空虚メーカーさんの記事)
>
> カレット位置の変更に対するイベントはどのように取得するかは
> 別ですが
> SelectionStart, SelectionLengthプロパティで選択状態を調整することが出来ます。
>
> とりあえずクリックでの選択状態設定です。
> Private Sub MaskedTextBox1_Click(sender As Object, e As System.EventArgs) Handles MaskedTextBox1.Click
> Dim intStart = MaskedTextBox1.SelectionStart
>
> Select Case intStart
> Case 0 To 3
> MaskedTextBox1.SelectionStart = 0
> MaskedTextBox1.SelectionLength = 4
> Case 4 To 6
> MaskedTextBox1.SelectionStart = 5
> MaskedTextBox1.SelectionLength = 2
> Case 7 To 10
> MaskedTextBox1.SelectionStart = 8
> MaskedTextBox1.SelectionLength = 2
> End Select
> End Sub

返信ありがとうございます

TextBoxでやってみたりとか色々してみたのですがSelectionStartがちゃんと動作しないとか
やればやる程分けが分からない状態になっていくので…
UserControlの上だと動作が変わるなんてことは無いはずですよねえ…
取り敢えず選択状態にするのは諦めたので解決済みにします
解決済み!
■No30572に返信(空虚メーカーさんの記事)

現在の状況とか記述したコードとか書かないと進展しませんよ。
少なくとも私が提示したコードはクリックしたときは言われていると
思われる動作をするのは確認出来たので、それも駄目だったのでしょうか?
クリック以外の操作だとするとどのような操作で実現しようとしているか
説明したほうがよいと思います。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板