Condividi tramite


Clipboard.SetDataObject Metodo

Definizione

Cancella il contenuto degli Appunti e vi aggiunge dati.

Overload

SetDataObject(Object)

Cancella il contenuto degli Appunti e vi inserisce dati non permanenti.

SetDataObject(Object, Boolean)

Cancella il contenuto degli Appunti e vi inserisce dati e specifica se vi debbano rimanere dopo la chiusura dell'applicazione.

SetDataObject(Object, Boolean, Int32, Int32)

Cancella il contenuto degli Appunti e quindi tenta di inserirvi dati per il numero di volte specificato e con l'intervallo tra tentativi specificato, lasciando facoltativamente i dati negli Appunti dopo la chiusura dell'applicazione.

SetDataObject(Object)

Cancella il contenuto degli Appunti e vi inserisce dati non permanenti.

public:
 static void SetDataObject(System::Object ^ data);
public static void SetDataObject (object data);
static member SetDataObject : obj -> unit
Public Shared Sub SetDataObject (data As Object)

Parametri

data
Object

Dati da inserire negli Appunti.

Eccezioni

Non è possibile inserire i dati negli Appunti. Ciò si verifica solitamente se un altro processo sta utilizzando gli Appunti.

Il thread corrente non è in modalità Single Thread Apartment (STA). Aggiungere la classe STAThreadAttribute al metodo Main dell'applicazione.

Il valore della proprietà data è null.

Esempio

Nell'esempio di codice seguente viene SetDataObject usato per inserire dati di testo non permanenti negli Appunti di sistema. button1_Click Nel metodo il testo selezionato viene copiato e textBox1 incollato negli Appunti. button2_Click Nel metodo le informazioni vengono recuperate dagli Appunti e visualizzate in textBox2. Questo codice presuppone che , button2, textBox1e textBox2 siano stati creati e inseriti button1in un modulo.

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

Commenti

I dati verranno eliminati dagli Appunti di sistema all'uscita dall'applicazione.

Questo metodo tenta di impostare i dati dieci volte in intervalli di 100 millisecondi e genera un'eccezione ExternalException se tutti i tentativi hanno esito negativo.

Nota

Un oggetto deve essere serializzabile affinché venga inserito negli Appunti. Se si passa un oggetto non serializzabile a questo metodo, l'operazione avrà esito negativo senza generare un'eccezione. Per altre informazioni sulla serializzazione, vedere System.Runtime.Serialization .

La Clipboard classe può essere usata solo nei thread impostati sulla modalità single thread apartment (STA). Per usare questa classe, assicurarsi che il Main metodo sia contrassegnato con l'attributo STAThreadAttribute .

Vedi anche

Si applica a

SetDataObject(Object, Boolean)

Cancella il contenuto degli Appunti e vi inserisce dati e specifica se vi debbano rimanere dopo la chiusura dell'applicazione.

public:
 static void SetDataObject(System::Object ^ data, bool copy);
public static void SetDataObject (object data, bool copy);
static member SetDataObject : obj * bool -> unit
Public Shared Sub SetDataObject (data As Object, copy As Boolean)

Parametri

data
Object

Dati da inserire negli Appunti.

copy
Boolean

true se si desidera che i dati rimangano negli Appunti alla chiusura dell'applicazione; in caso contrario, false.

Eccezioni

Non è possibile inserire i dati negli Appunti. Ciò si verifica solitamente se un altro processo sta utilizzando gli Appunti.

Il thread corrente non è in modalità Single Thread Apartment (STA). Aggiungere la classe STAThreadAttribute al metodo Main dell'applicazione.

Il valore della proprietà data è null.

Esempio

Il metodo seguente viene eseguito in un'applicazione. Inserisce una copia permanente dei dati di testo selezionati nella casella di testo negli Appunti di sistema. Questo codice presuppone che , textBox1e textBox2 siano stati creati e inseriti button1in un modulo.

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, true );
      }
      else
      {
         textBox2->Text = "No text selected in textBox1";
      }
   }
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, true);
    else
       textBox2.Text = "No text selected in textBox1";
 }
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, True)
    Else
        textBox2.Text = "No text selected in textBox1"
    End If
End Sub

In un'applicazione diversa, il metodo seguente recupera il testo dagli Appunti di sistema e incolla il testo in textBox2. Questo codice presuppone button2 che sia textBox2 stato creato e inserito in un modulo.

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 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 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

Commenti

Se il copy parametro è false, i dati verranno eliminati dagli Appunti di sistema all'uscita dall'applicazione.

Questo metodo tenta di impostare i dati dieci volte in intervalli di 100 millisecondi e genera un'eccezione ExternalException se tutti i tentativi hanno esito negativo.

Nota

Un oggetto deve essere serializzabile affinché venga inserito negli Appunti. Se si passa un oggetto non serializzabile a questo metodo, l'operazione avrà esito negativo senza generare un'eccezione. Per altre informazioni sulla serializzazione, vedere System.Runtime.Serialization .

La Clipboard classe può essere usata solo nei thread impostati sulla modalità single thread apartment (STA). Per usare questa classe, assicurarsi che il Main metodo sia contrassegnato con l'attributo STAThreadAttribute .

Vedi anche

Si applica a

SetDataObject(Object, Boolean, Int32, Int32)

Cancella il contenuto degli Appunti e quindi tenta di inserirvi dati per il numero di volte specificato e con l'intervallo tra tentativi specificato, lasciando facoltativamente i dati negli Appunti dopo la chiusura dell'applicazione.

public:
 static void SetDataObject(System::Object ^ data, bool copy, int retryTimes, int retryDelay);
public static void SetDataObject (object data, bool copy, int retryTimes, int retryDelay);
static member SetDataObject : obj * bool * int * int -> unit
Public Shared Sub SetDataObject (data As Object, copy As Boolean, retryTimes As Integer, retryDelay As Integer)

Parametri

data
Object

Dati da inserire negli Appunti.

copy
Boolean

true se si desidera che i dati rimangano negli Appunti alla chiusura dell'applicazione; in caso contrario, false.

retryTimes
Int32

Numero di tentativi di inserimento dei dati negli Appunti.

retryDelay
Int32

Numero in millisecondi di pausa tra tentativi.

Eccezioni

Il thread corrente non è in modalità Single Thread Apartment (STA). Aggiungere la classe STAThreadAttribute al metodo Main dell'applicazione.

data è null.

retryTimes è minore di zero.

-oppure- retryDelay è minore di zero.

Non è possibile inserire i dati negli Appunti. Ciò si verifica solitamente se un altro processo sta utilizzando gli Appunti.

Commenti

L'aggiunta di dati agli Appunti può talvolta non riuscire se gli Appunti sono occupati con un altro thread o un'altra applicazione. Questo metodo è utile per risolvere questo problema in ambienti con uso elevato degli Appunti.

Se il copy parametro è false, i dati verranno eliminati dagli Appunti di sistema all'uscita dall'applicazione.

Nota

Un oggetto deve essere serializzabile affinché venga inserito negli Appunti. Se si passa un oggetto non serializzabile a questo metodo, l'operazione avrà esito negativo senza generare un'eccezione. Per altre informazioni sulla serializzazione, vedere System.Runtime.Serialization .

La Clipboard classe può essere usata solo nei thread impostati sulla modalità single thread apartment (STA). Per usare questa classe, assicurarsi che il Main metodo sia contrassegnato con l'attributo STAThreadAttribute .

Vedi anche

Si applica a