Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
HomeAnnouncementsFree MagazinesWhite PapersSubmit Content
Discussion GroupsASP.NETWindows FormsLanguages.NET FrameworkVisual Studio.NET
Articles.NET FrameworkASP.NETToolsWindows Forms
.NET DirectoryOpen Source ProjectsUser GroupsWeb Resources
Related Topics
Visual Basic 6SQL ServerMS AccessOther DB ProductsMS Server ProductsMore Topics ...

.NET Forum / Windows Forms / WinForm Controls / December 2006

Tip: Looking for answers? Try searching our database.

Caret Position in Textbox Control

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
JerryWEC - 15 Dec 2006 19:49 GMT
I'm looking for some code that will give me the caret position or character
position in a textbox (VB.net 2005).  I'm looking for a way to determine the
position if clicked in the textbox or if the user arrows back and forth
between text characters.  I want to display the column number or character
position as you would see in a text editor.

Any help is greatly appreciated!

JerryM
Herfried K. Wagner [MVP] - 15 Dec 2006 22:25 GMT
"JerryWEC" <JerryWEC@newsgroups.nospam> schrieb:
> I'm looking for some code that will give me the caret position or
> character position in a textbox (VB.net 2005).  I'm looking for a way to
> determine the position if clicked in the textbox or if the user arrows
> back and forth between text characters.  I want to display the column
> number or character position as you would see in a text editor.

Getting and setting the position of the caret in a textbox control
<URL:http://dotnet.mvps.org/dotnet/faqs/?id=textboxcaretpos&lang=en>

Signature

M S   Herfried K. Wagner
M V P  <URL:http://dotnet.mvps.org/>
V B   <URL:http://dotnet.mvps.org/dotnet/faqs/>

Linda Liu [MSFT] - 18 Dec 2006 04:53 GMT
Hi Jerry,

Based on my understanding, you'd like to display the line index and column
index of the caret in a TextBox control. If I'm off base, please feel free
to let me know.

What Herfried has suggested is to use some Win32 APIs to get the character
index of the caret in a TextBox control. I have performed a test based on
Herfried's sample code and confirmed it works.

In fact, TextBoxBase class has already provided a property called
'SelectionStart', which does the same thing as the CaretPosition property
of Herfried's ExtendedTextBox  does.

To get the line index of the caret in a TextBox control, we could use the
GetLineFromCharIndex method of the TextBox. As for the column index,
TextBox hasn't supplied a property or method for us to get the information.
Fortunately, we could get it using  the GetFirstCharIndexFromLine method.

The following is a sample code snippet to get the line index and column
index of the caret in a TextBox control.

dim lineindex as Integer =
Me.TextBox1.GetLineFromCharIndex(Me.TextBox1.SelectionStart)
dim columnindex as Integer = Me.TextBox1.SelectionStart -
Me.TextBox1.GetFirstCharIndexFromLine(Me.TextBox1.GetLineFromCharIndex(Me.Te
xtBox1.SelectionStart))

Hope this helps.
If my suggestion is not appropriate for your practice, please feel free to
let me know.

Sincerely,
Linda Liu
Microsoft Online Community Support

==================================================
Get notification to my posts through email? Please refer to
http://msdn.microsoft.com/subscriptions/managednewsgroups/default.aspx#notif
ications.

Note: The MSDN Managed Newsgroup support offering is for non-urgent issues
where an initial response from the community or a Microsoft Support
Engineer within 1 business day is acceptable. Please note that each follow
up response may take approximately 2 business days as the support
professional working with you may need further investigation to reach the
most efficient resolution. The offering is not appropriate for situations
that require urgent, real-time or phone-based interactions or complex
project analysis and dump analysis issues. Issues of this nature are best
handled working with a dedicated Microsoft Support Engineer by contacting
Microsoft Customer Support Services (CSS) at
http://msdn.microsoft.com/subscriptions/support/default.aspx.
==================================================

This posting is provided "AS IS" with no warranties, and confers no rights.
Kevin Spencer - 19 Dec 2006 11:42 GMT
TextBox.SelectionStart, TextBox.SelectionLength, and TextBox.SelectedText
are all you need.

The position of the caret is always at SelectionStart. This is the index of
the caret in the character array (string) in the TextBox.

If there is no Selection, SelectionLength will be 0.
Signature

HTH,

Kevin Spencer
Microsoft MVP
Bit Player
http://unclechutney.blogspot.com

Expect the unaccepted.

> I'm looking for some code that will give me the caret position or
> character position in a textbox (VB.net 2005).  I'm looking for a way to
[quoted text clipped - 5 lines]
>
> JerryM

Free Magazines

Get these publications absolutely FREE for up to 12 months. There are no hidden fees and no obligation. Simply choose a title, complete the application form and submit it. Read more ...

Oracle MagazineNetwork ComputingComputer WorldBio-IT WorldeWeekInformation WeekInfosecurity
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.