一个很长的英文句子,放在textbox中时,被分成几行,请问如何读取第N行的内容(注意:文本中并没有分行符,另外环境是在vb.net中),谢谢!
Private
Overloads
Declare
Auto
Function
SendMessage
Lib
"user32"
( _
ByVal
hwnd
As
IntPtr, _
ByVal
wMsg
As
Int32, _
ByVal
wParam
As
Int32, _
ByVal
lParam
As
String
_
)
As
Int32
Private
Overloads
Declare
Auto
Function
SendMessage
Lib
"user32"
( _
ByVal
hwnd
As
IntPtr, _
ByVal
wMsg
As
Int32, _
ByVal
wParam
As
Int32, _
ByVal
lParam
As
Int32 _
)
As
Int32
Private
Const
EM_GETLINE
As
Int32 = &HC4
Private
Const
EM_GETLINECOUNT
As
Int32 = &HBA
Private
Const
MAX_CHAR_PER_LINE
As
Int32 = &H100
Private
Const
EM_LINELENGTH
As
Int32 = &HC1
Private
Const
EM_LINEINDEX
As
Int32 = &HBB
Private
Function
GetLine(
ByVal
Text
As
TextBoxBase,
ByVal
Line
As
Integer
)
As
String
Dim
dwLineStart
As
Int32 = SendMessage(Text.Handle, EM_LINEINDEX, Line, 0)
Dim
dwLineLen
As
Integer
= SendMessage(Text.Handle, EM_LINELENGTH, dwLineStart, 0)
Dim
Buff
As
String
= Chr(dwLineLen
And
&HFF) & Chr(dwLineLen / &H100) & Space(dwLineLen)
Dim
dwLen
As
Int32 = SendMessage(Text.Handle, EM_GETLINE, Line, Buff)
GetLine = Strings.Left(Buff, dwLen)
End
Function
Private
Sub
Button3_Click_1(
ByVal
sender
As
System.
Object
,
ByVal
e
As
System.EventArgs)
Handles
Button3.Click
Dim
g
As
Graphics = TextBox1.CreateGraphics()
Dim
w
As
Integer
=
CType
(g.MeasureString(TextBox1.Text, TextBox1.Font).Width,
Integer
)
Dim
s
As
String
= GetLine(TextBox1, 0)
MsgBox(s)
End
Sub
BTW, 这两行联系客服