突出显示标签Windows窗体

有没有什么办法可以使.NET窗体上的标签 高亮显示 ,以便复制文本。 我试图用一个看起来像一个标签的文本框来做到这一点,但是这会导致一个闪烁的光标。

我认为这是相当接近的:

textBox.BackColor = System.Drawing.SystemColors.Control; textBox.BorderStyle = System.Windows.Forms.BorderStyle.None; textBox.ReadOnly = true; textBox.Text = "This is selectable text"; textBox.MouseUp += new MouseEventHandler( delegate(object sender, MouseEventArgs e) { HideCaret((sender as Control).Handle); }); [DllImport("User32.dll")] static extern Boolean HideCaret(IntPtr hWnd); 

如果你需要它跨越多行:

 textBox.Multiline = true; 

如果你希望它是一个可预测的,良好的行为和标准的控制与所有的键盘和快捷方式的支持,你只需要一个文本框。 然后闪烁的光标是一个正常的帮助功能,为什么要打呢?

可选静态文本显示闪烁的光标并不罕见。 如果您在Windows资源管理器中获取任何文件的属性,并选择该窗口中的任何数据,则还会看到一个闪烁的光标。

以前我做过这样的事情,几年前,我想我使用了这个Win API调用(但是有一个常规的文本框): http : //www.dreamincode.net/forums/showtopic35107.htm

您有User32.dll中的HideCaret函数。 像这样使用它:

 [DllImport("User32.dll")] static extern bool HideCaret(IntPtr hWnd); private void textBox_Enter(object sender, EventArgs e) { HideCaret(textBox.Handle); } 

这将防止当文本框具有焦点时插入符号。

需要考虑的一件事就是继续使用标签,然后使用以下代码以编程方式将内容(Label的文本)复制到剪贴板:

 Clipboard.SetText(yourLabel.Text);