We help IT Professionals succeed at work.

Check out our new AWS podcast with Certified Expert, Phil Phillips! Listen to "How to Execute a Seamless AWS Migration" on EE or on your favorite podcast platform. Listen Now

x

Text alignment in usercontrol

entretec
entretec asked
on
Medium Priority
578 Views
Last Modified: 2008-02-01
I have created a simple usercontrol that only uses a textbox. I have full control over most of the textbox's properties EXCEPT text alignment which appears to be read only. Is there a API to force this?
Comment
Watch Question

Author

Commented:
Adjusted points to 100
How are you implementing the text box functions? alignment is not read-only, that is the property that you set for center,left,etc.  You may need to implement it as such:

property let alignment( pos as single)
  textbox1.alignment = pos
end property

Commented:
I think if it is read-only API won't work either. What you can do is to insert extra spaces based on alignment--if it is cenrered, you find out the length of textbox, the length of text in text box and insert spaced there.

Author

Commented:
The text alignment is read only which is strange because this property CAN be changed in the native textbox.
I thought of shadowing the textbox with a couple of others that had the alternative alignments but I need the textbox to be databound and that seems a contorted thing to try and code safely
I will try topol's suggestion to see if this would work.
have you tried impleming the above function as part of your new control? I just did it and Did not have a problem.  What does the code look like in your modules for declaring the functions of TextBox? Unless you have a property Let, it will be read-only.

Commented:
entreytec,
You need to have the multiline property set to true before your textbox's align property work. This may be the reason it is read only.

Author

Commented:
Perhaps I am not making myself clear. I want to able to alter the alignment from MY usercontrol in the properties menu or even programmaticaly. The nearest I can get is to have 2 separate usercontrols, one left justified and one right justified (too much of kludge, all the code has to be duplicated - I could have a module but how would you pass a usercontrol to it!). I have tried packing with spaces but it doesn't handle properly.

The following is how I have declared the property and functions

'''''''''''''''''''''''''''''''''''''''''''''''''''''''
Private Sub UserControl_InitProperties()
   Text1.alignment = vbLeftJustify
   '' other stuff
end sub

Private Sub UserControl_ReadProperties(PropBag As PropertyBag)
Text1.alignment = PropBag.ReadProperty("alignment", vbLeftJustify)
'' other stuff

end sub

Private Sub UserControl_WriteProperties(PropBag As PropertyBag)
    Call PropBag.WriteProperty("alignment", Text1.alignment, vbLeftJustify)
    '' other stuff
End Sub


Public Property Get alignment() As AlignmentConstants
    alignment = Text1.alignment
End Property

Public Property Let alignment(ByVal vNewValue As AlignmentConstants)
   Text1.alignment() = New_TabValue
   PropertyChanged "alignment"
End Property

Commented:
So what doesn't work? Show your alignment code
Commented:
Unlock this solution with a free trial preview.
(No credit card required)
Get Preview

Author

Commented:
Thanks if only to know it cannot be done. I would interested to see your work around

Commented:
Give me an email and I will post the control to you.

Author

Commented:
I think I may have done the wrong thing and put my email on the question page. Here is my email mikeb@entretec.com.au
Unlock the solution to this question.
Thanks for using Experts Exchange.

Please provide your email to receive a free trial preview!

*This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

OR

Please enter a first name

Please enter a last name

8+ characters (letters, numbers, and a symbol)

By clicking, you agree to the Terms of Use and Privacy Policy.