VB6.0用掲示板の過去のログ(No.2)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [管理用]

投稿日: 2006/12/15(Fri) 18:44
投稿者るしぇ
Eメール
URL
タイトルRe^6: Changeイベントでテキストボックスを変換

テキスト変更イベントの中でテキストを変更するということは、
その変更イベントの中でまたテキストが変更されて、
その変更イベントで…

…と下手をすると無限ループに陥るので気をつけてください
ということです。
[VB6.0]
Option Explicit
Private m_SyorityuFlag As Boolean '処理中フラグ

Private Sub Text1_Change()
    Dim top_chr As String
    Dim str_chr As String

    If m_SyorityuFlag Then Exit Sub
    
    top_chr = UCase(Mid$(Text1.Text, 1, 1))
    str_chr = LCase(Mid$(Text1.Text, 2))
    m_SyorityuFlag = True
    Text1.Text = top_chr & str_chr
    m_SyorityuFlag = False
    
    Text1.SelStart = Len(Text1.Text)

End Sub

また、
>Text1.SelStart = Len(Text1.Text)
ですけど、当然、ユーザが矢印キー等で挿入ポインタの位置を
変える事はあるわけで、常に文字列の最後に移動するのでは
実用的なレベルにまでは行ってませんが、まぁ、その程度なら
自分で修正できるだろうと思ってコメントしてません。


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- VBレスキュー(花ちゃん) - - Web Forum -