Cha*_*thJ 86
是否可以在Windows表单标签上选择文本? - NO(至少没有覆盖Label.Paint方法的简单方法)
您可以轻松地为此目的更改TextBox.
TextBox1.Text = "Hello, Select Me";
TextBox1.ReadOnly = true;
TextBox1.BorderStyle = 0;
TextBox1.BackColor = this.BackColor;
TextBox1.TabStop = false;
Run Code Online (Sandbox Code Playgroud)
不信?这是一个例子给你.

小智 13
像Bala R回答:
"使用BorderBox设置为None且Readonly设置为true的TextBox和Backcolor匹配容器的TextBox."
如果Text字符串非常长,并且其中Width的字符串TextBox不足以显示所有文本,则可以设置其Width属性TextBox以显示其所有文本.
如果您需要知道正确的数字Width,那么您可以使用此MeasureString方法Graphics.您可以从(在这种情况下)的CreateGraphics()方法中获取实例.ControlTextBox
第一个参数是TextBox的Text,第二个参数是TextBox的Font.此函数返回SizeFstruct.您只需要它的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;
}
Run Code Online (Sandbox Code Playgroud)
双击标签会将文本复制到剪贴板。现在,这是Windows窗体标签的默认行为。