是否可以突出显示/选择Windows窗体标签控件中的部分文本?我知道使用RTFtextbox控件是可能的,但是使用该控件将是多余的,因为我需要创建标签的许多实例。
是否可以在Windows表单标签上选择文本? -否(至少没有不重写Label.Paint方法的简单方法)
您可以为此轻松地更改文本框。
TextBox1.Text = "Hello, Select Me";
TextBox1.ReadOnly = true;
TextBox1.BorderStyle = 0;
TextBox1.BackColor = this.BackColor;
TextBox1.TabStop = false;
TextBox1.Multiline = True; // If needed
不相信吗?这是给你的例子。
<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS8xTTR3SC5wbmcifQ==” alt =“在此处输入图像描述”>
像Bala R回答:
“使用将BorderStyle设置为None且将Readonly设置为true的TextBox和背景色以匹配容器的颜色。”]
如果文本字符串很长,并且Width
的TextBox
不足以显示所有文本,则可以设置Width
的TextBox
属性以显示所有文本。
如果您需要知道Width
的正确数字,则可以使用MeasureString
的Graphics
方法。您可以从CreateGraphics()
的Control
方法获得实例(在这种情况下为TextBox
)。
第一个参数是TextBox的Text,第二个参数是TextBox的Font。此函数返回SizeF
结构。您只需要它的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;
}
否,无法在Windows窗体标签上选择文本。您可以为此使用只读文本框。
双击标签将文本复制到剪贴板。现在,这是Windows窗体标签的默认行为。
使用TextBox
设置为BorderStyle
且None
设置为Readonly
,并使用背景色以匹配容器的true
。>
您将无法在标签上突出显示部分文本。但是,如果这些标签的文本是静态的,则可以使用图像并将其设置为Label.Image属性。
我知道这个问题是关于选择标签文本的部分