Export (0) Print
Expand All

Clipboard.SetDataObject Method (Object)

Clears the Clipboard and then places nonpersistent data on it.

Namespace:  System.Windows.Forms
Assembly:  System.Windows.Forms (in System.Windows.Forms.dll)

public static void SetDataObject(
	Object data


Type: System.Object

The data to place on the Clipboard.


Data could not be placed on the Clipboard. This typically occurs when the Clipboard is being used by another process.


The current thread is not in single-threaded apartment (STA) mode. Add the STAThreadAttribute to your application's Main method.


The value of data is null.

Data will be deleted from system Clipboard when the application exits.

This method attempts to set the data ten times in 100-millisecond intervals, and throws an ExternalException if all attempts are unsuccessful.


An object must be serializable for it to be put on the Clipboard. If you pass a non-serializable object to this method, it will fail without throwing an exception. See System.Runtime.Serialization for more information on serialization.

The Clipboard class can only be used in threads set to single thread apartment (STA) mode. To use this class, ensure that your Main method is marked with the STAThreadAttribute attribute.

The following code example uses SetDataObject to place nonpersistent text data onto the system Clipboard. In the button1_Click method, the selected text is copied from textBox1 and pasted on the Clipboard. In the button2_Click method, the information is retrieved from the Clipboard and displayed in textBox2. This code assumes button1, button2, textBox1, and textBox2 have been created and placed on a form.

private void button1_Click(object sender, System.EventArgs e) {
    // Takes the selected text from a text box and puts it on the clipboard. 
    if(textBox1.SelectedText != "")
       textBox2.Text = "No text selected in textBox1";

 private void button2_Click(object sender, System.EventArgs e) {
    // Declares an IDataObject to hold the data returned from the clipboard. 
    // Retrieves the data from the clipboard.
    IDataObject iData = Clipboard.GetDataObject();

    // Determines whether the data is in a format you can use. 
    if(iData.GetDataPresent(DataFormats.Text)) {
       // Yes it is, so display it in a text box.
       textBox2.Text = (String)iData.GetData(DataFormats.Text); 
    else {
       // No it is not.
       textBox2.Text = "Could not retrieve data off the clipboard.";

Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile for Smartphone, Windows Mobile for Pocket PC

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

.NET Framework

Supported in: 3.5, 3.0, 2.0, 1.1, 1.0

.NET Compact Framework

Supported in: 3.5, 2.0

Community Additions

© 2015 Microsoft