Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 509
  • Last Modified:

Text alignment in usercontrol

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?
0
entretec
Asked:
entretec
  • 5
  • 2
  • 2
  • +2
1 Solution
 
entretecAuthor Commented:
Adjusted points to 100
0
 
redbaron082997Commented:
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
0
 
topolCommented:
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.
0
What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

 
entretecAuthor 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.
0
 
redbaron082997Commented:
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.
0
 
DalinCommented:
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.
0
 
entretecAuthor 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
0
 
topolCommented:
So what doesn't work? Show your alignment code
0
 
LlandrCommented:
OK Here comes an answer.
UserControls cannot perform actions that involves destruction of a window (in the Windows-API meaning). This means that you cannot perform the rightalignment (since this operation involves deletion and creation of a new textbox window) another property that is impossible to export this way is the MultiLine property.

I made a work around which involves having two textboxes (both multiline) one right aligned and one left-aligned. Hide the textbox that is not currently visible. When you switch aligments copy properties betweeen the textboxes and show the relevant one.

0
 
entretecAuthor Commented:
Thanks if only to know it cannot be done. I would interested to see your work around
0
 
LlandrCommented:
Give me an email and I will post the control to you.
0
 
entretecAuthor 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
0

Featured Post

Ask an Anonymous Question!

Don't feel intimidated by what you don't know. Ask your question anonymously. It's easy! Learn more and upgrade.

  • 5
  • 2
  • 2
  • +2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now