Clipboard.GetDataObject 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.
Recupera i dati presenti negli Appunti di sistema.
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
Restituisce
Classe IDataObject che rappresenta i dati presenti negli Appunti oppure null
se negli Appunti non sono presenti dati.
Eccezioni
Non è possibile recuperare i dati dagli Appunti. Ciò si verifica solitamente se un altro processo sta utilizzando gli Appunti.
Il thread corrente non è in modalità Single Thread Apartment (STA) e il valore della proprietà MessageLoop è true
. Aggiungere la classe STAThreadAttribute al metodo Main
dell'applicazione.
Esempio
Nell'esempio di codice seguente vengono Clipboard usati metodi per inserire i dati e recuperarli dagli Appunti di sistema. Questo codice presuppone che , , textBox1``button2
e textBox2
siano stati inseriti button1
nel modulo.
Il button1_Click
metodo chiama SetDataObject per accettare testo selezionato dalla casella di testo e inserirlo negli Appunti di sistema.
Il button2_Click
metodo chiama GetDataObject per recuperare i dati dagli Appunti di sistema. Il codice usa e DataFormats per estrarre i dati restituitiIDataObject. I dati vengono visualizzati in 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
Commenti
Poiché il tipo di dati dell'oggetto restituito dagli Appunti può variare, questo metodo restituisce i dati in un IDataObjectoggetto . È quindi possibile usare metodi dell'interfaccia IDataObject per estrarre i dati nel tipo di dati appropriato.
Questo metodo tenta di ottenere i dati dieci volte in intervalli di 100 millisecondi e genera un valore ExternalException se tutti i tentativi non sono riusciti.
Nota
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 .