Clipboard.GetDataObject Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Načte data, která jsou aktuálně v systémové schránce.
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
Návraty
Jedná se IDataObject o data, která jsou aktuálně ve schránce, nebo null
pokud ve schránce nejsou žádná data.
Výjimky
Data nelze načíst ze schránky. K tomu obvykle dochází, když je schránka používána jiným procesem.
Aktuální vlákno není v režimu sta (single-threaded apartment) a MessageLoop hodnota vlastnosti je true
. Přidejte metodu STAThreadAttribute Main
aplikace.
Příklady
Následující příklad kódu používá Clipboard metody k umístění dat a jejich načtení ze systémové schránky. Tento kód předpokládá button1
, , button2``textBox1
a textBox2
byly umístěny do formuláře.
Volání button1_Click
metody SetDataObject pro výběr vybraného textu z textového pole a jeho umístění do systémové schránky.
Volání button2_Click
metody GetDataObject pro načtení dat ze systémové schránky. Kód používá IDataObject a DataFormats extrahuje vrácená data. Data se zobrazují v textBox2
souboru .
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
Poznámky
Vzhledem k tomu, že datový typ objektu vráceného ze schránky se může lišit, tato metoda vrátí data v objektu IDataObject. Pak můžete použít metody IDataObject rozhraní k extrahování dat ve správném datovém typu.
Tato metoda se pokusí získat data desetkrát v 100 milisekundových intervalech a vyvolá ExternalException chybu, pokud všechny pokusy nejsou úspěšné.
Poznámka
Třída Clipboard se dá použít pouze ve vláknech nastavených na režim STA (Single Thread Apartment). Chcete-li tuto třídu použít, ujistěte se, že je vaše Main
metoda označena atributem STAThreadAttribute .