Link to home
Start Free TrialLog in
Avatar of gem56
gem56

asked on

RichTextBox.GetCharIndexFromPosition returns wrong value

Hi,
I have a RichTextBox in a Form that I populate line-by-line (due to formatting, etc.) from my Form_Load function.

While loading, I use GetCharIndexFromPosition function and if the RichTextBox height can accommodates all text lines then the above function always returns the correct CharIndex. If however the RichTextBox height can't accommodate all text lines then for lines past the end of viewable area the GetCharIndexFromPosition returns wrong CharIndex values and i get scrambled text.

As part of trying to resolve the problem I made the Form height (in IDE) fairly small and then in Form_Load function I first changed the height (to accommodate all text lines) and I still get the wrong outcome, i.e. all lines past the original Form size appear wrong. If I then reload the contents, after the form is shown with the new height, then I get the same (bad) result for all lines past the end of viewable are, same as previously. If I bypass that function and always use .TextLength (as I can while loading but not always) then everything is shown properly so I'm sure it's something related to that function that's causing the problem.

Any ideas as to what could be the problem?

/Michael
Avatar of jjardine
jjardine
Flag of United States of America image

I think the problem with the GetCharIndexFromPosition method is that it uses a Screen Point to know where to go.   Since lines below the visible area of the RichTextBox are not on the screen and invisible they do not correlate to a screen point.  Is it possible to Scroll the RichTextBox down as enough lines are added to go below view?   Maybe scrolling the last character into view may provide a point to reference to add more text.
Avatar of gem56
gem56

ASKER

I think you may be right about the Screen Point.

To answer your question, at times it may be possible to scroll down but that would place too much of a limitation on what I'm trying to achieve.
ASKER CERTIFIED SOLUTION
Avatar of gem56
gem56

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial