是否可以在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非常长,并且TextBox
的Width
不足以显示所有文本,则可以将TextBox
的Width
属性设置为显示所有文本。
如果你需要知道Width
的正确数字,那么你可以使用Graphics
的MeasureString
方法。 你可以从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
设置为None
和Readonly
的TextBox
设置为true
,Backcolor与容器匹配。
您将无法突出显示标签上的部分文字。 但是,如果这些标签的文本是静态的,则可以使用图像并将其设置为Label.Image属性。