リッチテキストボックスで折返しと文字選択について


スナフキン  2005-03-29 23:59:13  No: 89076

お世話になります。VB.NETの初心者です。
リッチテキストボックスでWordWrapをTrueにし、全角+半角の入力をしても改行されないようにSendMessageを使って処理をしています。
ここに文字を入力し、マウスでドラッグして範囲選択しようとしたとき、入力した文字が全て選択されてしまいます。キーボードでは1文字ずつ選択できます。
.NETのフォームにVB6のRichText Control Version6.0のcontrolを貼り付けた際は正常に動作します。
マウスでドラックした際も1文字ずつ選択できるようにしたいのですが、どのようにしたらよろしいでしょうか?
よろしくお願い致します。

モジュール********
Private Const EM_SETWORDBREAKPROC As Integer = &HD0
Delegate Function EditWordBreakProc(ByRef lpch As Integer, _
                                    ByRef ichCurrent As Integer, _
                                    ByRef cch As Integer, _
                                    ByRef action As Integer) As Long

Private Declare Function SendMessageByNum Lib "user32"                Alias "SendMessageA" _
            (ByVal hwnd As Integer, _
             ByVal wMsg As Integer, _
             ByVal wParam As Integer, _
             ByVal lParam As EditWordBreakProc) As Integer

Public Sub NonWordWrap(ByRef TextCtrl As System.Windows.Forms.Control)
  Dim lngAPIResult As Integer
       lngAPIResult = SendMessageByNum(TextCtrl.Handle.ToInt32, _
                                       EM_SETWORDBREAKPROC, _
                                       0, _
                                       AddressOf MyWordBreak)
End Sub

Public Function MyWordBreak(ByRef lpch As Integer, _
                            ByRef ichCurrent As Integer, _
                            ByRef cch As Integer, _
                            ByRef action As Integer) As Long
End Function

フォーム*******
Private Sub Form3_Load(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles MyBase.Load
        NonWordWrap(RichTextBox1)
End Sub


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加