Solved

textbox problem

Posted on 2000-04-06
7
212 Views
Last Modified: 2010-05-02
i need to be able to get a line from one multiline textbox and place that line into a single line textbox then delete the original line from the multiline textbox. im looking for simple code something that could be easly understood
0
Comment
Question by:justin05
7 Comments
 
LVL 28

Expert Comment

by:AzraSound
Comment Utility
is it a particular line in the multiline textbox or will it be some random line??
0
 
LVL 14

Accepted Solution

by:
waty earned 100 total points
Comment Utility
' #VBIDEUtils#************************************************************
' * Programmer Name  : Waty Thierry
' * Web Site         : www.geocities.com/ResearchTriangle/6311/
' * E-Mail           : waty.thierry@usa.net
' * Date             : 18/05/99
' * Time             : 13:05
' **********************************************************************
' * Comments         : Get a particular line in a textbox
' *
' *
' **********************************************************************

Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" ( ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Public Const EM_GETLINE = &HC4

Public Function GetLine(txtBox As TextBox, LineIndex As Long) As String
   Dim bBuffer()  As Byte   'the byte array
   Dim lngLength  As Long   'the max length of the line
   Dim sRetVal    As String 'the text to return

   'check to see if the LineIndex value is valid
   If LineIndex >= LineCount(txtBox) Then
      'call the LineCount function shown above
      Exit Function 'bale out
   End If

   'get the length of the line
   lngLength = LineLen(txtBox, GetCharFromLine(txtBox, LineIndex))
   'check that there is any text on the line
   If lngLength < 1 Then
      Exit Function
   End If

   'ReDim the byte array
   ReDim bBuffer(lngLength)

   'Save the length in the first word of the array
   bBuffer(0) = lngLength And 255
   bBuffer(1) = lngLength  256

   'Send the message
   SendMessage txtBox.hWnd, EM_GETLINE, LineIndex, bBuffer(0)

   'Finally convert the byte array into a string and return it
   sRetVal = Left$(StrConv(bBuffer, vbUnicode), lngLength)
   GetLine = sRetVal
End Function

0
 
LVL 20

Expert Comment

by:hes
Comment Utility
Private Sub text1_DblClick()
Text2.Text = Text1.SelText
Text1.SelText = ""
End Sub
0
IT, Stop Being Called Into Every Meeting

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

 
LVL 28

Expert Comment

by:AzraSound
Comment Utility
hes, that wont highlight the entire line
0
 
LVL 32

Expert Comment

by:Erick37
Comment Utility
My version:

Option Explicit
Const EM_LINELENGTH = &HC1
Const EM_LINEFROMCHAR = &HC9
Const EM_LINEINDEX = &HBB

Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
    (ByVal hwnd As Long, ByVal wMsg As Long, _
    ByVal wParam As Long, lParam As Any) _
    As Long

Private Sub Command1_Click()

    Dim lChar As Long, lLine As Long, lLen As Long
    Dim lLineIndex As Long
   
    With txtMulti 'Multiline textbox
    lChar = .SelStart
    'Get the absolute line number
    lLine = SendMessage(.hwnd, EM_LINEFROMCHAR, lChar, 0)
    'Get the char pos of beginning of line
    lLineIndex = SendMessage(.hwnd, EM_LINEINDEX, lLine, 0)
    'Get the length of the line
    lLen = SendMessage(.hwnd, EM_LINELENGTH, lChar, 0)
    .SelStart = lLineIndex
    .SelLength = lLen
    'Copy over to the other textbox
    txtLine.Text = Trim(.SelText)
    'Clear the text
    .SelText = ""
    End With
End Sub
0
 

Author Comment

by:justin05
Comment Utility
this code did not answer my  but i found the answer i was looking for thanks for the help though i did this very simply by doing the following

teststring = Text1
For scan = 1 To Len(teststring)
splited = Mid(teststring, scan, 1)
If splited = Chr(10) Then
    endline = scan
    scan = Len(teststring)
End If
Next scan
textedit = Left(teststring, endline)
strfind = textedit.Text
intlen = Len(strfind)
Text1.SelStart = 0
Text1.SelLength = intlen
Text1.SelText = ""


as you can see this is very simple and it worked for what i was doing thank you all for your help
0
 

Expert Comment

by:yuvaraj
Comment Utility
You need to use the Cut, Copy & Paste options.

First you get the current cursor position ie the start of the blocked text or the start of the line.

Then from there you use the mid function to cut the portion and add this to the textbox.

0

Featured Post

How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

Join & Write a Comment

Suggested Solutions

Title # Comments Views Activity
VBA to format 3 78
VBA loop through headers using value 3 48
Help in WHSCRIPT 9 41
VB6 - Compare and highlight cell not the same 3 33
Introduction I needed to skip over some file processing within a For...Next loop in some old production code and wished that VB (classic) had a statement that would drop down to the end of the current iteration, bypassing the statements that were c…
Since upgrading to Office 2013 or higher installing the Smart Indenter addin will fail. This article will explain how to install it so it will work regardless of the Office version installed.
Get people started with the process of using Access VBA to control Outlook using automation, Microsoft Access can control other applications. An example is the ability to programmatically talk to Microsoft Outlook. Using automation, an Access applic…
Get people started with the process of using Access VBA to control Excel using automation, Microsoft Access can control other applications. An example is the ability to programmatically talk to Excel. Using automation, an Access application can laun…

743 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

16 Experts available now in Live!

Get 1:1 Help Now