Page 1 of 1

Set and Get Text in the Clipboard

#1 nathanpc  Icon User is offline

  • SCIENCE!
  • member icon

Reputation: 112
  • View blog
  • Posts: 1,171
  • Joined: 31-July 09

Posted 20 April 2011 - 04:54 PM

Introduction

In this article, I will explain how to manipulate text in the Clipboard. Here is how the main form in the sample application looks like:
Posted Image


Adding Controls

First of all, create a new project (Windows Forms Application) and add two Labels, then add a TextBox (textClip), and then another Label (labelClip) that will show what is in the Clipboard. Now, add a Timer (timerRefresh) that will refresh what is in the Clipboard to you automatically, and finally, add a Button (buttonSet).


The Code

First of all, define the interval of the Timer. In this article, I will use 5000ms (5 sec.) as interval. Now, let's get into the code!
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();
    }
}

Explanation
  • PasteData(): In the PasteData, we have a IDataObject called ClipData that will store the Clipboard data object, then the Timer starts. The if statement will see if the Clipboard has something; if it has, it will store the data in a string(s), for use later to change the text of labelClip
  • timerRefresh_Tick(object sender, EventArgs e): In this function, every time the Timer reaches the interval time (5 sec.), it will execute PasteData
  • private void SetToClipboard(object text): Here, we will add a text that is in the object test to the Clipboard, using SetDataObject
  • private void buttonSet_Click(object sender, EventArgs e): When the user clicks in the buttonSet button, it will use SetToClipboard, using the text that is in testClip as the variable


Is This A Good Question/Topic? 1
  • +

Page 1 of 1