Подтвердить что ты не робот

Можно ли выбрать текст на ярлыке формы Windows?

Можно ли выделить/выбрать часть текста в элементе управления меткой Windows Form? Я знаю, что это возможно с помощью элемента управления RTFtextbox, но использование этого элемента управления будет чрезмерным, поскольку мне нужно создать много экземпляров метки.

4b9b3361

Ответ 1

Можно ли выбрать текст на ярлыке формы Windows? - НЕТ (По крайней мере, нет простого способа без переопределения метода Label.Paint)

Вы можете легко изменить TextBox для этой цели.

TextBox1.Text = "Hello, Select Me";
TextBox1.ReadOnly = true;
TextBox1.BorderStyle = 0;
TextBox1.BackColor = this.BackColor;
TextBox1.TabStop = false;

Не верьте? вот вам пример.

enter image description here

Ответ 2

Как сказал Bala R:

"Использовать TextBox с BorderStyle, установленным в None, и Readonly установить значение true и Backcolor, чтобы соответствовать таковой в контейнере.".

Если текстовая строка очень длинная, а Width для TextBox недостаточно для отображения всего текста, вы можете установить для свойства Width свойство TextBox для отображения всего текста.

Если вам нужно знать правильный номер для Width, для этого вы можете использовать метод MeasureString Graphics. Вы можете получить экземпляр из CreateGraphics() метода Control (TextBox в этом случае).

Первый параметр - TextBox Text, а вторым параметром является TextBox Font. Эта функция возвращает SizeF struct. Вам нужно только свойство Width, преобразовать его в целое число с помощью (int)size.Width или (int)Math.Round(size.Width).

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


Вы можете написать свою собственную функцию, которая будет выполнять весь этот процесс:

static void SetText(TextBox textBox, string str)
{
   Graphics graphics = textBox.CreateGraphics();
   SizeF size = graphics.MeasureString(str, textBox.Font);
   graphics.Dispose();
   textBox.Width = (int)Math.Round(size.Width);
   textBox.Text = str;
}

Ответ 3

Нет, невозможно выбрать текст в ярлыке формы Windows. Вместо этого вы можете использовать текстовое поле для чтения.

Ответ 4

Используйте TextBox с BorderStyle для None и Readonly для true и Backcolor, чтобы соответствовать таковому для контейнера.

Ответ 5

Вы не сможете выделить часть текста на ярлыке. Однако вы можете использовать изображение и установить его в свойство Label.Image, если текст для этих меток статичен.