一個(gè)很長的英文句子,放在textbox中時(shí),,被分成幾行,,請問如何讀取第N行的內(nèi)容(注意:文本中并沒有分行符,另外環(huá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, 這兩行Dim g As Graphics = TextBox1.CreateGraphics() Dim w As Integer = CType(g.MeasureString(TextBox1.Text, TextBox1.Font).Width, Integer) 多余可以去掉 |
|