c# - TextBox.TextAlign right-side alignment has no effect in certain conditions? -


i have path selector in visual c# express 2010 form application.

i using folderbrowserdialog , (single line) textbox, show selected path. using following line in ui refresh code.

this.textboxfolder.text = this.folderbrowserdialog1.selectedpath; 

the readonly property set true , textalign property set right using form designer, because selected path longer textbox, , prefer show right-side of path. forms designer generates this:

//  // textboxfolder //  this.textboxfolder.location = new system.drawing.point(40, 72); this.textboxfolder.name = "textboxfolder"; this.textboxfolder.readonly = true; this.textboxfolder.size = new system.drawing.size(160, 20); this.textboxfolder.tabindex = 13; this.textboxfolder.tabstop = false; this.textboxfolder.textalign = system.windows.forms.horizontalalignment.right; 

whenever chosen path shorter textbox size, right alignment works. (but not important)

whenever chosen path longer textbox size, right alignment has no effect, string in textbox displayed such left-most character visible, , right-most hidden.

i know in normal single line textbox (readonly = false), when overly-long string typed in hand, right chars visible, when focus goes away, regardless of whether textalign set left / right / center!

in other words, goal is, when textbox.text programmatically set (as opposed typed in), , string longer width of textbox, how right-most chars visible?

instead of setting textalign property, should move caret last character:

textboxfolder.text = this.folderbrowserdialog1.selectedpath; textboxfolder.selectionstart = textbox1.text.length - 1; 

setting selectionstart moves caret specified position. , makes character @ position visible in textbox.

if can use label instead of text box, can use one created hans passant here uses textformatflags.pathellipses flag while drawing text.


Comments