• 0

[vb .net] Find cursor position in textbox


Question

17 answers to this question

Recommended Posts

  • 0

Try: taken from http://www.vb-helper.com/howto_track_textbox_caret.html

Private Sub CheckPosition()

Dim char_pos As Long

Dim row As Long

Dim col As Long

char_pos = SendMessage(Text1.hwnd, EM_GETSEL, 0, 0)

char_pos = char_pos \ &H10000

row = SendMessage(Text1.hwnd, EM_LINEFROMCHAR, _

char_pos, 0) + 1

col = char_pos - SendMessage(Text1.hwnd, EM_LINEINDEX, _

-1, 0) + 1

lblPosition.Caption = "(" & Format$(row) & ", " & _

Format$(col) & ")"

End Sub

Private Sub Text1_KeyDown(KeyCode As Integer, Shift As _

Integer)

CheckPosition

End Sub

Private Sub Text1_KeyUp(KeyCode As Integer, Shift As _

Integer)

CheckPosition

End Sub

Private Sub Text1_MouseDown(Button As Integer, Shift As _

Integer, X As Single, Y As Single)

CheckPosition

End Sub

Private Sub Text1_MouseUp(Button As Integer, Shift As _

Integer, X As Single, Y As Single)

CheckPosition

End Sub

  • 0
  bangbang023 said:
meaning natively it doesn't have support for it. There are some work around "hacks" but it's not worth it just to simplify the current line number method.

584831062[/snapback]

do you mean drag and drop files into the richtextbox?

  • 0
  bangbang023 said:
yes. works fine with textboxes but after trying ot get it to work with richtext and looking online, it seems as though it's not as "accessible" as it is with textboxes.

584833023[/snapback]

why is not as accessible? I'm looking at the control and it supports d-n-d.

  • 0
  bangbang023 said:
I don't know, but it doesn't work at all for me.

584834030[/snapback]

May I see your DragDrop handler code?

<edit>I just got it to work dragging from a listbox to a richtextbox.

This is all i needed in the richtextbox DragDrop event handler

richTextBox1.SelectedText = e.Data.GetData("System.String", true).ToString();

  • 0

im dragging and dropping from explorer.......I have a textbox in a child form. I put the drag drop event in the parent form and t picks it up fine. Does not do so with the richtextbox. I tired localizing the drop drop code from the parent form to the childform and have it only read drag drop events on the richtextbox itself and still nothing. This is the code I'm using in the parent form:

Private Sub mainForm_DragEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles MyBase.DragEnter
        If (e.Data.GetDataPresent(DataFormats.FileDrop)) Then
            e.Effect = DragDropEffects.All
        Else
            e.Effect = DragDropEffects.None
        End If
    End Sub


    Private Sub mainForm_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles MyBase.DragDrop
        Dim number As Integer = noteArray.Count
        Dim title As String

        'get file name and location
        Dim s() As String = e.Data.GetData("FileDrop", False)

        Dim i As Integer = 0
        While i &lt; s.Length
            'creates a new notepad window
            Call createNewPad()

            title = s(i).Substring(s(i).LastIndexOf("\") + 1)
            noteArray(number).text = title
            Me.tabPads.TabPages(number).Text = title

            'open file and input text into txtMain
            Dim dragStream As New System.IO.FileStream(s(i), IO.FileMode.Open, IO.FileAccess.Read, IO.FileShare.Read)
            Dim dragReader As New System.IO.StreamReader(dragStream)
            noteArray(number).txtMain.text = dragReader.ReadToEnd
            dragReader.Close()
            dragStream.Close()

            noteArray(number).txtMain.select(0, 0)
            noteArray(number).fileNameExists = True
            noteArray(number).contentchanged = False
            noteArray(number).filenamesaved = s(i)
            number = number + 1
            i = i + 1
        End While

        'give focus to NexPad
        Me.Activate()
        noteArray(i).txtMain.focus()

    End Sub

Even when I specifically set it to the rich text box, still no go.

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Posts

    • Correct. You don’t buy anything that’s free (if it were).
    • Vivaldi 7.4.3684.52 by Razvan Serea Vivaldi is a cross-platform web browser built for – and with – the web. A browser based on the Blink engine (same in Chrome and Chromium) that is fast, but also a browser that is rich in functionality, highly flexible and puts the user first. A browser that is made for you. Vivaldi is produced with love by a founding team of browser pioneers, including former CEO Jon Stephenson von Tetzchner, who co-founded and led Opera Software. Vivaldi’s interface is very customizable. Vivaldi combines simplicity and fashion to create a basic, highly customizable interface that provides everything a internet user could need. The browser allows users to customize the appearance of UI elements such as background color, overall theme, address bar and tab positioning, and start pages. Vivaldi features the ability to "stack" and "tile" tabs, annotate web pages, add notes to bookmarks and much more. Vivaldi 7.4.3684.52 changelog: [Address bar] URL is searched instead of opening (VB-117198) [Chromium] Update to 136.0.7103.179 [Settings][Workspaces] Add Workspace Rule button hidden by 4th rule (VB-117181) Download: Vivaldi 64-bit | 125.0 MB (Freeware) Download: Vivaldi 32-bit | ARM64 View: Vivaldi Home Page | Screenshot Get alerted to all of our Software updates on Twitter at @NeowinSoftware
    • NTLite 2025.06.10482 by Razvan Serea NTLite is a Windows configuration tool that allows you to modify your existing Windows install or an image yet to be deployed, remove Windows components, configure and integrate, speed up the Windows deployment process. Reduce Windows footprint on your RAM and storage drive memory. Remove components of your choice, guarded by compatibility safety mechanisms, which speed up finding that sweet spot. Windows Unattended feature support, providing many commonly used options on a single page for easy setup. Easily integrate a single or multiple drivers, update or language packages. Package integration features smart sorting, enabling you to seamlessly add packages for integration and the tool will apply them in the appropriate order, keeping hotfix compatibility in check. One of the important new features of NTLite (compared to its predecessors) is the ability to modify an already installed the operating system, by removing unnecessary components. Supports Windows 11, 10, 8.1 and 7, x86 and x64, live and image. Server editions of the same versions, excluding support for component removals and feature configuration. ARM64 image support in the alpha stage. Does not support Checked/Debug, Embedded, IoT editions, nor Vista or XP. NTLite 2025.06.10482 changelog: Fix Image: Image optimization would be skipped if both boot.wim and install.wim would keep only one edition Image: Crash after exporting unloaded image in certain situations Upgrade UI-Translation: Thanks for Turkish (Salih DURDU), Georgian (Anonymous) Download: NTLite 64-bit | 21.5 MB (Free, paid upgrade available) Download: NTLite 32-bit | 19.3 MB Link: NTLite Home Page | NTLite Features | Screenshot Get alerted to all of our Software updates on Twitter at @NeowinSoftware
    • CrystalDiskMark 9.0.1 is out.
    • Wonder if the HDMI Forum will allow AMD to use HDMI 2.2 under Linux.
  • Recent Achievements

    • Week One Done
      Wayne Robinson earned a badge
      Week One Done
    • One Month Later
      Karan Khanna earned a badge
      One Month Later
    • Week One Done
      Karan Khanna earned a badge
      Week One Done
    • First Post
      MikeK13 earned a badge
      First Post
    • Week One Done
      OHI Accounting earned a badge
      Week One Done
  • Popular Contributors

    1. 1
      +primortal
      688
    2. 2
      ATLien_0
      265
    3. 3
      Michael Scrip
      202
    4. 4
      +FloatingFatMan
      167
    5. 5
      Steven P.
      141
  • Tell a friend

    Love Neowin? Tell a friend!