Clipboard.GetDataObject Metode

Definisi

Mengambil data yang saat ini ada di Clipboard sistem.

public:
 static System::Windows::Forms::IDataObject ^ GetDataObject();
public static System.Windows.Forms.IDataObject GetDataObject();
public static System.Windows.Forms.IDataObject? GetDataObject();
static member GetDataObject : unit -> System.Windows.Forms.IDataObject
Public Shared Function GetDataObject () As IDataObject

Mengembalikan

Yang IDataObject mewakili data yang saat ini ada di Clipboard, atau null jika tidak ada data di Clipboard.

Pengecualian

Data tidak dapat diambil dari Clipboard. Ini biasanya terjadi ketika Clipboard sedang digunakan oleh proses lain.

Utas saat ini tidak dalam mode apartemen berulir tunggal (STA) dan MessageLoop nilai propertinya adalah true. Tambahkan ke STAThreadAttribute metode aplikasi Main Anda.

Contoh

Contoh kode berikut menggunakan Clipboard metode untuk menempatkan data dan mengambilnya dari Clipboard sistem. Kode ini mengasumsikan button1, button2, textBox1, dan textBox2 telah ditempatkan pada formulir.

Metode button1_Click memanggil SetDataObject untuk mengambil teks yang dipilih dari kotak teks dan menempatkannya di Clipboard sistem.

Metode ini button2_Click memanggil GetDataObject untuk mengambil data dari Clipboard sistem. Kode menggunakan IDataObject dan DataFormats untuk mengekstrak data yang dikembalikan. Data ditampilkan di textBox2.

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->Equals( "" ) )
      {
         Clipboard::SetDataObject( textBox1->SelectedText );
      }
      else
      {
         textBox2->Text = "No text selected in textBox1";
      }
   }

   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.";
      }
   }
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 != "")
       Clipboard.SetDataObject(textBox1.SelectedText);
    else
       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.";
    }
 }
Private Sub button1_Click(sender As Object, e As System.EventArgs)
    ' Takes the selected text from a text box and puts it on the clipboard.
    If textBox1.SelectedText <> "" Then
        Clipboard.SetDataObject(textBox1.SelectedText)
    Else
        textBox2.Text = "No text selected in textBox1"
    End If
End Sub
 
Private Sub button2_Click(sender As Object, e As System.EventArgs)
    ' Declares an IDataObject to hold the data returned from the clipboard.
    ' Retrieves the data from the clipboard.
    Dim iData As IDataObject = Clipboard.GetDataObject()
    
    ' Determines whether the data is in a format you can use.
    If iData.GetDataPresent(DataFormats.Text) Then
        ' Yes it is, so display it in a text box.
        textBox2.Text = CType(iData.GetData(DataFormats.Text), String)
    Else
        ' No it is not.
        textBox2.Text = "Could not retrieve data off the clipboard."
    End If
End Sub

Keterangan

Karena tipe data objek yang dikembalikan dari Clipboard dapat bervariasi, metode ini mengembalikan data dalam IDataObject. Kemudian Anda dapat menggunakan metode IDataObject antarmuka untuk mengekstrak data dalam jenis data yang tepat.

Metode ini mencoba untuk mendapatkan data sepuluh kali dalam interval 100 milidetik, dan melempar jika ExternalException semua upaya tidak berhasil.

Note

Kelas Clipboard hanya dapat digunakan dalam utas yang disetel ke mode apartemen utas tunggal (STA). Untuk menggunakan kelas ini, pastikan bahwa metode Main Anda ditandai dengan atribut STAThreadAttribute.

Berlaku untuk

Lihat juga