View Single Post
  #4   Report Post  
Posted to microsoft.public.excel.programming
Rick Rothstein Rick Rothstein is offline
external usenet poster
 
Posts: 5,934
Default Vertically centering text in a label field

In a userform, I sometimes prefer using a label instead
of a textbox, because the label can't be edited and is
automatically gray. Basically I want to use the label
field just as if it were a textbox that can't be edited
and is always grayed out.

The problem I have is that the caption (font) in the
label is not centered vertically in the box. It looks to
be aligned at the top, and I can't see any way to
change it. Maybe not a big deal, but the letters don't
line up with other textboxes on the same line and it
makes the userform look bad.

Does anyone know how I can center the label caption
vertically within the label field?


You can fake centering the text in the label vertically by using two Label
controls having the same fill color. Set Label1 to have a border and set its
Caption to the empty string. Next, set Label2 to not have a border and put
the text you want to display in its Caption property. Also set Label2's
AutoSize property to True and then place Label2 over top of Label1 so its is
located where you want it horizontally. You can center it vertically using
this code...

Label2.Top = Label1.Top + (Label1.Height - Label2.Height) / 2

but do so after you place the text you want to display in Label2. If you do
everything correctly, then the text you put in Label2 will look as if it is
part of Label1 and be located where you want it.

Rick Rothstein (MVP - Excel)