.NET Label.TextAlign, кажется, не работает - PullRequest
8 голосов
/ 22 июля 2010

У меня есть метка, которую я хочу выровнять по правому краю, чтобы можно было выровнять ее по текстовому полю.
Дизайнер в Visual Studio 2010 Express сгенерировал этот код для меня

this.lblAddData.AutoSize = true;  
this.lblAddData.Location = new System.Drawing.Point(167, 452);  
this.lblAddData.Name = "lblAddData";  
this.lblAddData.Size = new System.Drawing.Size(25, 14);  
this.lblAddData.TabIndex = 5;  
this.lblAddData.Text = "text";  
this.lblAddData.TextAlign = System.Drawing.ContentAlignment.MiddleRight;  

[текст] [текстовое поле] В коде я изменяю текст программно

lblAddData.Text = "a very long text";

, но текст прячется за текстовым полем, которое я поместил рядом с надписью на правой стороне
.

[версия] [текстовое поле]

Кто-нибудь сталкивался с такой же проблемой раньше?
Я знаю, что в ней отсутствует информация, поэтому спросите меня, нужна ли вам дополнительная информация.
С наилучшими пожеланиями
Горген

Ответы [ 2 ]

15 голосов
/ 22 июля 2010

Ну, я сам заметил ошибку;AutoSize был установлен в true, то есть поведение по умолчанию

this.lblAddData.AutoSize = true;

Когда я изменил это на false, он работал так, как я и предполагал.

3 голосов
/ 22 июля 2010

Свойство TextAlign определяет способ выравнивания текста внутри метки:

Получает или задает выравнивание текста в метке.

Если вы изменяете длину текста, вам необходимо пересчитать Location метки, которая всегда вверху слева.

Я нашел эту статью проекта кода , в которой, хотя, вероятно, и выше того, что вы хотите, говорится:

Более того, если вы собираетесь изменить текст метки (например, при локализации приложения) или выравнивание текста, вам придется изменить размеры / переместить элементы управления . Поэтому я создал этот простой ярлык, который заботится о таких деталях.

(мой жирный)

Таким образом, вы можете использовать тот же алгоритм для изменения положения ярлыка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...