65.9K
CodeProject 正在变化。 阅读更多。
Home

设置和获取剪贴板中的文本

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.18/5 (6投票s)

2009年10月5日

CPOL

1分钟阅读

viewsIcon

63186

downloadIcon

950

如何使用 C# 设置和获取剪贴板中的文本。

引言

在本文中,我将解释如何操作剪贴板中的文本。以下是示例应用程序中的主窗体外观

添加控件

首先,创建一个新项目(Windows Forms 应用程序),并添加两个 Label,然后添加一个 TextBoxtextClip),以及另一个 LabellabelClip),它将显示剪贴板中的内容。现在,添加一个 TimertimerRefresh),它将自动刷新剪贴板中的内容,最后,添加一个 ButtonbuttonSet)。

代码

首先,定义 Timer 的间隔。在本文中,我将使用 5000 毫秒(5 秒)作为间隔。现在,让我们进入代码!

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
        PasteData();
    }

    private void SetToClipboard(object text)
    {
        System.Windows.Forms.Clipboard.SetDataObject(text);
    }

    private void PasteData()
    {
        IDataObject ClipData = System.Windows.Forms.Clipboard.GetDataObject();
        timerRefresh.Start();
        if (ClipData.GetDataPresent(DataFormats.Text))
        {
           string s = System.Windows.Forms.Clipboard.GetData(DataFormats.Text).ToString();
            labelClip.Text = s;
        }
    }

    private void buttonSet_Click(object sender, EventArgs e)
    {
        SetToClipboard(textClip.Text);
    }

    private void timerRefresh_Tick(object sender, EventArgs e)
    {
        PasteData();
    }
}

解释

  • PasteData():在 PasteData 中,我们有一个名为 ClipDataIDataObject,它将存储剪贴板数据对象,然后 Timer 开始。if 子句将检查剪贴板中是否有内容;如果有,它会将数据存储在字符串(s)中,以便稍后更改 labelClip 的文本。
  • timerRefresh_Tick(object sender, EventArgs e):在此函数中,每次 Timer 到达间隔时间(5 秒)时,它将执行 PasteData
  • private void SetToClipboard(object text):在这里,我们将使用 SetDataObject 将对象 text 中的文本添加到剪贴板。
  • private void buttonSet_Click(object sender, EventArgs e):当用户单击 buttonSet 按钮时,它将使用 SetToClipboard,并将 textClip 中的文本作为变量。
© . All rights reserved.