Clipboard.GetDataObject Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Recupera os dados que estão atualmente na Prancheta do sistema.
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
Devoluções
Um IDataObject que representa os dados atualmente na Área de Transferências, ou null se não houver dados na Área de Transferências.
Exceções
Os dados não podiam ser recuperados da Prancheta. Isto ocorre tipicamente quando a Prancheta está a ser usada por outro processo.
A thread atual não está em modo single-threaded apartment (STA) e o MessageLoop valor da propriedade é true. Adicione-os STAThreadAttribute ao processo da Main sua candidatura.
Exemplos
O exemplo de código seguinte utiliza Clipboard métodos para colocar dados e recuperá-los da Área de Transferência do sistema. Este código assume button1, button2, textBox1, e textBox2 foram colocados no formulário.
O button1_Click método chama SetDataObject para pegar no texto selecionado da caixa de texto e colocá-lo na Prancheta do sistema.
O button2_Click método chama GetDataObject para recuperar dados do Clipboard do sistema. O código utiliza IDataObject e DataFormats para extrair os dados devolvidos. Os dados são exibidos em 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
Observações
Como o tipo de dado do objeto devolvido da Área de Transferência pode variar, este método devolve os dados num IDataObject. Depois podes usar métodos da IDataObject interface para extrair os dados no seu tipo de dado correto.
Este método tenta obter os dados dez vezes em intervalos de 100 milissegundos, e lança uma ExternalException resposta se todas as tentativas falharem.
Note
A classe Clipboard só pode ser usada em threads configurados para o modo apartamento de thread único (modo STA). Para usar essa classe, verifique se o método Main está marcado com o atributo STAThreadAttribute.