C # имеет конец текстовых приоритетов - PullRequest
1 голос
/ 09 марта 2009

Я объединяю строку, которая иногда бывает достаточно длинной, чтобы она не помещалась в элемент управления меткой. Как сделать так, чтобы он автоматически прокручивался до правой стороны, чтобы я всегда видел конец строки?

Ответы [ 3 ]

4 голосов
/ 09 марта 2009

Хотя я уверен, что есть способы сделать, я должен спросить, почему? Я думаю, что это будет выглядеть и / или работать очень плохо и, вероятно, запутать пользователя.

Почему бы не обрезать текст с помощью эллипса (...) в конце и показать подсказку на ярлыке?

using System.Windows.Forms;

var label = new Label();
label.AutoSize = false;
label.AutoEllipsis = true;
label.Text = "This text will be too long to display all together.";

var labelToolTip = new ToolTip();
labelToolTip.SetToolTip(label, label.Text);

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

1 голос
/ 09 марта 2009

Свойство TextAlign позволяет указать выравнивание. Если вы правомерно с этим справитесь, правая часть текста всегда будет видна. Однако, если вы хотите, чтобы он был выровнен по левому краю или по центру, и при этом сохранялось поведение, которое вы описали, я подозреваю, что вам потребуется выполнить какое-то измерение, используя Graphics.MeasureString, чтобы определить, подходит ли текст, и динамически изменить выравнивание .

0 голосов
/ 09 марта 2009

AFAIK нет способа прокрутить ярлык. Хаком было бы использовать TextBox (только для чтения, отключить границу), а затем использовать SendKeys.Send (), чтобы переместить курсор в конец текста. Что-то вроде:

        textBox1.Focus();
        SendKeys.SendWait("{END}");

Чтобы текст не отображался как выбранный, мне пришлось изменить его положение в порядке табуляции (чтобы оно не было 1), но это может не быть проблемой в вашем случае.

...