DOBON.NETプログラミング道掲示板
(現在 過去ログ1 を表示中)

[ 最新記事及び返信フォームをトピックトップへ ]

■33334 / inTopicNo.1)  DataRepeater MaskedTextBox SelectAll出来ない
  
□投稿者/ 田中P 一般人(1回)-(2016/04/19(Tue) 11:07:12)
  • アイコン環境/言語:[OS : Windows 8 / 言語 : Visual Basic .NET / .NET Framework : 4.5] 
    分類:[.NET] 

    【解決したい問題】

    DataRepeater上のMaskedTextBoxにてGotFocus時にテキスト全選択させたい

    【GotFocusのイベント】
    Dim tb As MaskedTextBox = DirectCast(sender, MaskedTextBox)
    tb.Tag = tb.Text
    tb.SelectAll()

    DataRepeater上のTextBoxは正常に全選択されます
    Form上のTextBox、MaskedTextBoxも正常に全選択されます

    コードを通っても全選択されないので何かのイベントにて無かったことにされると思うのですが調べ方がわかりません
    解決方法をご存知でしたら教えてください

    【解決するために何をしたか】

    DataRepeater, MaskedTextBox, SelectAll等で検索してみましたが、解決方法を発見することはできませんでした

    試しにKeyDownイベントにて
    Case Keys.Decimal
    txt.SelectAll()
    としてみたところ、全選択はされず、キャレットが先頭に行くのみでした

    【何故全選択させたいか】
    ・初期設定ではキャレットは一番後ろにありますが、再入力したい場合にキャレットを先頭に移すのが面倒と言われた
    ・KeyDownイベントで左右キー押下時にフォーカスを動かす処理をしており、TextLengthとSelectionLengthが同じ場合のみフォーカス遷移させるようになっています。なのでその条件になるようにMaskedTextBoxの値を全選択させたい
引用返信 削除キー/
■33335 / inTopicNo.2)  Re[1]: DataRepeater MaskedTextBox SelectAll出来ない
□投稿者/ 田中P 一般人(3回)-(2016/04/19(Tue) 15:05:51)
  • アイコン気に入りませんが
    GotFocus時にSelectALLではなくSendKeys.Sendを使用して全選択させる事にしました

    解決済にしますが、もし他の対処法があればお願いします
解決み!
引用返信 削除キー/
■33336 / inTopicNo.3)  Re[2]: DataRepeater MaskedTextBox SelectAll出来ない
□投稿者/ とくま 一般人(5回)-(2016/04/19(Tue) 15:53:17)
  • アイコン2016/04/19(Tue) 15:54:59 編集(投稿者)

    No33335に返信(田中Pさんの記事)
    環境:Windows7、VB2010(パワーパックアドイン参照設定追加(Microsoft.VisualBasic.PowerPacks.Vs)、バージョン10.0.0.0、ランタイムバージョンv2.0.50727)
    新規プロジェクトで、新規の MaskedTextBox、DataRepeater を使い、
    ・DataRepeater に 乗せた場合、乗せてない(フォーム上に直接配置した)場合
    ・DataBindings した場合、してない場合
    ・Enterイベントで設定、GotFocusイベントで設定
    の組み合わせで、キーボードからのTab、Shift+Tabの移動にて
    全選択されるかどうか確認しましたが、全ての組み合わせで、
    提示されたコードにて全選択されるようです。

    問題点を切り分けるなら、
    まずは新規プロジェクトで、新規の MaskedTextBox、DataRepeater を使い、
    プロパティなどを一切変更せずに動作確認してください。

    次に、1つ1つプロパティなどを変更して動作確認してください。

    最後に、ご自分でコーディングしたコードを(段階的にできるなら段階的に)
    追加して動作確認してください。

    既存のコントロールの仕様に問題がないか

    既存のプロパティを変更した時に問題がないか

    自分で書いたコードに問題がないか
    です。
解決み!
引用返信 削除キー/
■33337 / inTopicNo.4)  Re[3]: DataRepeater MaskedTextBox SelectAll出来ない
□投稿者/ 田中P 一般人(4回)-(2016/04/19(Tue) 17:46:48)
  • アイコン問題の切り分けの仕方を教えていただきましてありがとうございます
    教えていただいたように新規プロジェクトで
    ・DataRepeater に 乗せた場合、乗せてない(フォーム上に直接配置した)場合
    ・DataBindings した場合、してない場合
    全選択する事を確認しました。
    追加条件として
    ・Maskあり、無し
    でやってみたところ、Maskした場合に全選択になりませんでした
    マスク内容は「00/00/00」です
引用返信 削除キー/
■33338 / inTopicNo.5)  Re[4]: DataRepeater MaskedTextBox SelectAll出来ない
□投稿者/ とくま 一般人(6回)-(2016/04/19(Tue) 18:10:00)
  • アイコンNo33337に返信(田中Pさんの記事)
    Maskが関係していると絞られたことで
    「vb.net mask selectall」をキーワードに検索してみると、似たような事例が
    報告されているようです。

    。。。が上記の私の環境では全選択できてしまいます(;;
    とりあえず、VS2005の仕様だとされているVisual Studio 共通 フォーラム
    の内容を参考にFocus()してみるとか?
    https://social.msdn.microsoft.com/Forums/ja-JP/048fab8c-5a95-421e-88b7-6b69e669f8ea/maskedtextboxselectall?forum=vsgeneralja
    フォーカスがうまく移ってなくて選択できないってのは、ありがちな
    パターンですね。。。コントロール側の問題に思います。

引用返信 削除キー/
■33339 / inTopicNo.6)  Re[5]: DataRepeater MaskedTextBox SelectAll出来ない
□投稿者/ 田中P 一般人(5回)-(2016/04/20(Wed) 11:18:45)
  • アイコン> ・Maskあり、無し
    > でやってみたところ、Maskした場合に全選択になりませんでした
    > マスク内容は「00/00/00」です

    申し訳ないです、更地から作ったテストプログラムではEnterイベントのままで全選択されなかったみたいです
    GotFocusに変更したところ正常に全選択されました

    では何故目的のプログラムでは全選択にならないかと色々してみたり眺めていたのですが
    項目がたくさんあってAddHandlerがごちゃごちゃしたのでLoad時に移したところの記述で
    DRMaskedTextBox_GotFocusになっていたところのイベントがEnterになっていました
    これをGotFocusに直したら改善されました

    あんまり長いとアレかなと思って勝手に端折った箇所に問題があり恥ずかしい限りです
    お付き合いいただきましてありがとうございました

    【問題があったプログラム】
    For i As Integer = 0 To Me.DataRepeater1.ItemTemplate.Controls.Count - 1
      Select Case Me.DataRepeater1.ItemTemplate.Controls(i).GetType.Name
        Case "MaskedTextBox"
          Dim msk As MaskedTextBox = DirectCast(Me.DataRepeater1.ItemTemplate.Controls(i), MaskedTextBox)
          Select Case msk.Name
            Case Else
              AddHandler msk.KeyDown, AddressOf DRMaskedTextBox_KeyDown
              AddHandler msk.Enter, AddressOf DRMaskedTextBox_GotFocus
            AddHandler msk.Validated, AddressOf EditTextBoxControl_Validated
          End Select
      End Select
    Next
解決み!
引用返信 削除キー/



トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

Mode/  Pass/


- Child Tree -