Clipboard.GetDataObject Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Hämtar de data som för närvarande finns i systemets Urklipp.
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
Returer
En IDataObject som representerar de data som för närvarande finns i Urklipp eller null om det inte finns några data i Urklipp.
Undantag
Det gick inte att hämta data från Urklipp. Detta inträffar vanligtvis när Urklipp används av en annan process.
Den aktuella tråden är inte i sta-läge (single-threaded apartment) och egenskapsvärdet MessageLoop är true. Lägg till i STAThreadAttribute programmets Main metod.
Exempel
I följande kodexempel används Clipboard metoder för att placera data på och hämta dem från systemets Urklipp. Den här koden förutsätter button1, button2, textBox1och textBox2 har placerats i formuläret.
Metoden button1_Click anropar SetDataObject för att ta ut markerad text från textrutan och placera den i systemets Urklipp.
Metoden button2_Click anropar GetDataObject för att hämta data från systemets Urklipp. Koden använder IDataObject och DataFormats för att extrahera data som returneras. Data visas i 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
Kommentarer
Eftersom datatypen för objektet som returneras från Urklipp kan variera returnerar den här metoden data i en IDataObject. Sedan kan du använda gränssnittsmetoder för IDataObject att extrahera data i rätt datatyp.
Den här metoden försöker hämta data tio gånger i 100 millisekunders intervall och genererar ett ExternalException om alla försök misslyckas.
Note
Klassen Clipboard kan endast användas i trådar som är inställda på sta-läge (single thread apartment). Om du vill använda den här klassen kontrollerar du att din Main-metod har markerats med attributet STAThreadAttribute.