0

我正在使用 C# 开发应用程序。我有一个窗口,其中有一个包含一些文本的标签。我想复制我们从任何地方复制的东西。但我不能从窗口复制标签。我该怎么做才能复制标签的文本???

4

3 回答 3

2

您将无法使用标签执行此操作。

您可以尝试使用文本框执行此操作,以模拟标签和突出显示选择。

TextBox.ReadOnly 属性

使用 ReadOnly 属性指定是否可以更改 TextBox 控件的内容。将此属性设置为 true 将阻止用户输入值或更改现有值。

和类似的东西

TextBox1.Text = "Hello, Select Me";
TextBox1.ReadOnly = true;
TextBox1.BorderStyle = 0;
TextBox1.BackColor = this.BackColor;
TextBox1.TabStop = false;
于 2013-06-14T16:16:05.907 回答
1

向标签添加方法以使标签在单击时获得焦点:

private void label1_Click(object sender, EventArgs e)
{
    label1.Focus();
}

将表单的“KeyPreview”属性设置为“true”,以便处理按下的键。我还添加了一个方法来处理 keydown 事件:

private void Form1_KeyDown(object sender, KeyEventArgs e)
{
    if (label1.ContainsFocus && e.Control && e.KeyCode == Keys.C)
        Clipboard.SetText(label1.Text);
}

即使“KeyPreview”属性为假,这也应该有效。如果表单将接收所有键事件,则此属性为 true;如果窗体上当前选定的控件接收到键事件,则返回 false。默认为假

于 2013-06-14T16:13:38.483 回答
0

默认情况下,winforms标签控件不支持选择文本和复制功能。相反,您可以将点击事件添加到标签,然后 onclick 将焦点放在标签上。并在表单按键事件中检查标签是否聚焦并单击 Ctrl+C 然后将其复制到单击板。

    private void label1_Click(object sender, EventArgs e)
    {
        label1.Focus();
    }

    private void Form1_KeyDown(object sender, KeyEventArgs e)
    {
        if (label1.ContainsFocus && e.Control && e.KeyCode == Keys.C)
            Clipboard.SetText(label1.Text);
    }
于 2013-06-14T16:17:46.210 回答