Clipboard.SetDataObject Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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
, textBox1
e textBox2
siano stati creati e inseriti button1
in 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 , textBox1
e textBox2
siano stati creati e inseriti button1
in 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
.
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 .