2011-02-18 16 views
13

Etiketlerimi, farklı uzunluklarda olsa bile sağa hizalanacak şekilde nasıl ayarlayabilirim. Yan yana ve birbirinin altında oluşan bir etiket setim var.
Sorun şu ki, her zaman etiket satırında soldan hizalanacakları, ancak diğer satırlardan toplamları gösterdikleri için sağa hizalanmaları gerekiyor.

Sadece doğrulamak için metin hizalama hakkında konuşmuyorum Etiketleri hizalamak için bir çözüm arıyorum. peşinEtiket konumu sağa sabitlenmeli ve sola dönülmelidir

+5

WinForms? ASP.Net? Silverlight? WPF? MonoTouch? – SLaks

cevap

26

yılında

Teşekkür Basitçe tasarımcı False AutoSize özelliği ayarlayın. Boyutu sütuna göre ayarlayın. Ardından TextAlign'i doğru hizalamalardan birine ayarlayın.

+0

Cevabınız için teşekkürler. Neden bu aptal autosize özelliği hakkında düşünmedim: / – SwissGuy

0

Bunu tasarımcıdan nasıl yapacağınızı soruyorsanız, Format Menüsünü kullanın. Hizalamak istediğiniz tüm kontrolleri seçin, ardından diğerinin hizalanmasını istediğiniz kontrolü tıklayın. Biçim> Hizala> Haklar.

Çalışma zamanında bunu yapmaya çalışıyorsanız, hizalamak istediğiniz denetimler arasında geçiş yapabilir ve .X özelliğini genişliklerine göre ayarlayabilirsiniz. Örneğin. Bir etiketi, sağ tarafı X = 200 olacak şekilde hizalamak için ... SomeLabel.X = 200 - SomeLabel.Width.

6

Aşağıdaki kodu kullanarak çalışma zamanında bunu yapmak mümkün olmalıdır:

'find the current right alignment position 
Dim rightAlign As Integer = Label1.Left + Label1.Width 
'set the text (assumes AutoSize is set to True) 
Label1.Text = value 
'adjust position so the right hand point is in the same position as before 
Label1.Left = rightAlign - Label1.Width 
1

Benim yöntemim daha da garip. Etiketleri oluşturup, rapor için alanları belirlerken sağa hizalanacak numarayı (vb.) Ayarlayın. Not: Tüm etiketler 'lbl' ile sonlandırılır - txtNew rapor sütunu metin kutusu. - sütunun sol kenarını artı etiketin genişliğini artıran sütunun genişliğini alın. Eserleri! Sadece bunu yapmak için en sevdiğim yol değil.

' *** NEED TO CALC POSITION FOR RIGHT JUSTIFY OF LABEL !!!!! 
    If ShouldRightJustify(rs.Fields(i).Type) Then 
     rpt.Section(acPageHeader).Controls(rs.Fields(i).Name & "lbl").Left = _ 
      (lblCol + txtNew.Width) _ 
      - rpt.Section(acPageHeader).Controls(rs.Fields(i).Name & "lbl").Width 
     End If 
İlgili konular