お世話になります。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
ツイート | ![]() |