是否可以在Windows窗体标签上select文本?

是否可以突出显示/selectWindows窗体标签控件中的部分文本? 我知道它可能与RTFtextbox控制,但使用该控件将是矫枉过正,因为我需要创build标签的许多实例。

是否可以在Windows窗体标签上select文本? – NO(至less没有重写Label.Paint方法的简单方法)

您可以轻松地为此更改文本框。

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

不要相信? 这里是你的一个例子。

在这里输入图像说明

巴拉R回答:

“使用BorderStyle设置为None和Readonly的TextBox设置为true,Backcolor与容器匹配。”

如果文本string非常长,并且TextBoxWidth不足以显示所有文本,则可以将TextBoxWidth属性设置为显示所有文本。

如果你需要知道Width的正确数字,那么你可以使用GraphicsMeasureString方法。 你可以从Control CreateGraphics()方法(在这种情况下是TextBox CreateGraphics()获取实例。

第一个参数是TextBox的Text,第二个参数是TextBox的Font。 这个函数返回SizeF结构。 您只需要它的Width属性,将其转换为(int)size.Width(int)Math.Round(size.Width)

之后不要忘记调用graphics实例的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; } 

不,不可能在Windows窗体标签上select文本。 你可以改为使用只读文本框。

使用BorderStyle设置为NoneReadonlyTextBox设置为true ,Backcolor与容器匹配。

您将无法突出显示标签上的部分文字。 但是,如果这些标签的文本是静态的,则可以使用图像并将其设置为Label.Image属性。