2012-08-13 58 views
1

以編程方式創建標籤(即不在設計器中)不會在我的表單上對齊。以編程方式創建的標籤不會右對齊

Set lblStatus = StatusForm.Controls.Add("VB.Label", "lbl" & xml(Prop, "column")) 
With lblStatus 
    .Visible = True 
    .Caption = Text 
    .Alignment = vbRightJustify 
    .WordWrap = False 
    .AutoSize = True 
    .top = Index * (lblStatus.height) 
    .left = MaxWidth - Screen.TwipsPerPixelX * 15 
    .Width = StatusForm.TextWidth(Text) 
End With 

我創建了三個這些控件,但他們繼續從左側展開,而不是從正確的:

Left-justified labels

理想情況下,我想這些標籤(由#包圍)至有他們的分號排隊。

+0

嗯..嘗試省略「.left」屬性的明確定義? – 2012-08-13 14:41:29

+1

@DavidW'left'屬性(AFAIK)是設置水平定位的唯一方法。我試圖尋找一個「正確的」,但無法找到一個。我需要將它們「分」到分號匹配的中間位置。 – 2012-08-13 14:47:24

回答

5

由於您將AutoSize設置爲true,所以將寬度設置爲文本的精確寬度,不留空間進行對齊。

要在固定寬度內佈局文本,請關閉AutoSize。

+0

這樣做的竅門 - 寬度太小,以至於無法證明理由。我刪除了'AutoSize'屬性,並將'Width'更改爲大於'TextWidth(text)'的東西,並且它完全合理。 – 2012-08-13 14:48:13