Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++/CLI Windows Forms
Войти
Регистрация
Восстановить пароль
 
simoncarptur
1 / 1 / 2
Регистрация: 27.11.2014
Сообщений: 13
1

Зафиксировать Label относительно объектов справа

31.10.2015, 13:03. Просмотров 336. Ответов 0
Метки нет (Все метки)

Как при программном изменении текста в Label сделать, чтобы его положение относительно объектов справа не изменилось? Т.е. если новый текст короче старого, то Label должен продвинуться вправо, если длиннее - то влево. Пробовал устанавливать Anchor относительно права - не работает. Пробовал запихнуть Label в Panel, и у неё уже установить Anchor на право - тоже не работает, в обоих случаях Label не сдвигается относительно лева, а вправо расширяется или укорачивается. Пробовал делать так: создавал на форме Label, помещал в него текст, который должен быть в первом Label'е, и записывал ширину получившегося Label'a. Потом программно пробовал сдвинуть первый Label, т.е. писал:
C++
1
label->Location = System::Drawing::Point(label->Location.X + label->Size->Width - value, label->Location.Y)
, где value - это как раз записанная ширина второго Label'а. В итоге label сдвигается, но почему-то на value + 6 пикселей! Тогда я стал брать valuebна 6 пикселей меньше - все прекрасно сдвигается, но если попробовать сдвинуть таким образом ещё один Label с ещё одним текстом - он сдвинется на value + ещё некоторое число пикселей, на сколько точно определять не стал, но не на 6! Т.е. вообще какие-то непонятки.

Добавлено через 17 часов 0 минут
Решение - написать функцию, запоминающую начальную ширину Label и сдвигающую его влево на разницу начальной ширины и конечной ширины (после присваивания текста):
C++
1
2
3
4
5
6
void setLabelText(Label^label, String^text)
        {
            int move = label->Width;
            label->Text = text;
            label->Location = Point(label->Location.X - label->Width + move, label->Location.Y);
        }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.10.2015, 13:03
Ответы с готовыми решениями:

Создать массив объектов типа Label
Здравствуйте, уважаемые форумчане! Пишу в windows forms c++. Как можно...

ProgressBar. Отображение % выполнения на label - как сделать фон label прозрачным?
Есть прогрессбар, есть лэйбл, на котором отображается ход выполнения. Лэйбл...

Зафиксировать элемент относительно другого
Добрый день! Есть основная колонка, и некий зафиксированный position: fixed;...

Как зафиксировать элемент относительно браузера?
Дело в то, что при разном разрешении экрана, элемент смещается в сторону!...

Как на javascript зафиксировать элемент относительно вертикальной прокрутки
Всем доброго времени суток. Заранее извиняюсь за столь нубский вопрос. Нужно...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.10.2015, 13:03

Зафиксировать форму на странице в заданном положении относительно экрана даже при ее прокрутке
Привет всем. Сразу извинюсь за такою тему. Только начал изучать Web. На форме...

Зафиксировать масштаб страницы или как пересчитывать автоматически в css относительно масштаба
Здравствуйте! Появилась огромная проблема. Сайт полностью написан на html5, ...

Как зафиксировать Label если он находится в определенном месте (Delphi)
Как сделать так, чтобы когда Label находится в пределах рамки, он...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru