vb.net中如何读取文本框textbox中指定行的内容?

mai51 2009-10-07 09:20:23
一个很长的英文句子,放在textbox中时,被分成几行,请问如何读取第N行的内容(注意:文本中并没有分行符,另外环境是在vb.net中),谢谢!
...全文
366 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
it_gz_xi 2009-10-07
  • 打赏
  • 举报
回复
楼主是怎么分成几行的?
贝隆 2009-10-07
  • 打赏
  • 举报
回复
帮顶
martinuk 2009-10-07
  • 打赏
  • 举报
回复
BTW, 这两行
Dim g As Graphics = TextBox1.CreateGraphics()
Dim w As Integer = CType(g.MeasureString(TextBox1.Text, TextBox1.Font).Width, Integer)
多余可以去掉
martinuk 2009-10-07
  • 打赏
  • 举报
回复
不用多说啦, 用下面的code就好了。 给点分吧,呵呵(^_^)


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

lrjt1980 2009-10-07
  • 打赏
  • 举报
回复
不是有属性设置吗
it_gz_xi 2009-10-07
  • 打赏
  • 举报
回复
那楼主可以试试substring
appleller 2009-10-07
  • 打赏
  • 举报
回复
是不是可以根据字符串长度结合textbox宽度来计算
mai51 2009-10-07
  • 打赏
  • 举报
回复
由于文本框textbox宽度有限,自然分成了几行

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧