当我在WindowsForms中双击LinkLabel时,它会复制其文本;我怎么能阻止这个?
顺便说一句,这是一个.Net 2.0应用程序,如果这有任何区别的话。由于
答案 0 :(得分:2)
您始终可以使用以下方式清除剪贴板:
Clipboard.Clear();
更新:
您可以在鼠标双击事件中使用此代码。
试试这个:
private void linkLabel1_MouseDoubleClick(object sender, MouseEventArgs e)
{
Clipboard.Clear();
}
更新2:
使用以下代码,它不会复制可链接的值,也会保留剪贴板。您必须在鼠标输入事件和鼠标双击事件中使用这些代码。
试试这个:
public string str;
private void linkLabel1_MouseEnter(object sender, EventArgs e)
{
str = Clipboard.GetText();
linkLabel1.MouseDoubleClick+=new MouseEventHandler(linkLabel1_MouseDoubleClick);
}
private void linkLabel1_MouseDoubleClick(object sender, MouseEventArgs e)
{
Clipboard.SetText(str);
}
答案 1 :(得分:1)
似乎这种行为内置于LinkLabel,并且无法覆盖它。
测试显示,触发MouseDoubleClick事件时剪贴板已经更改。
FWIW,我从来不需要这个控件 - 一个带有一些样式的常规Label以及MouseEnter / MouseLeave事件的使用在很多项目中都很好用。
答案 2 :(得分:0)
您可以做的是创建自己的标签,并将其从Control派生为公共类MyLabel : Control
,然后自己在其中绘制文本
protected override void OnPaint(PaintEventArgs e) { SolidBrush TextBrush = new SolidBrush(this.ForeColor); TextRenderer.DrawText(e.Graphics, this.Text, this.Font, this.ClientRectangle, this.ForeColor, TextFormatFlags.Left | TextFormatFlags.VerticalCenter ); }