Clipboard.SetDataObject Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Czyści Schowek, a następnie dodaje do niego dane.
Przeciążenia
SetDataObject(Object) |
Czyści Schowek, a następnie umieszcza na nim dane niepersistentne. |
SetDataObject(Object, Boolean) |
Czyści Schowek, a następnie umieszcza na nim dane i określa, czy dane powinny pozostać po zakończeniu działania aplikacji. |
SetDataObject(Object, Boolean, Int32, Int32) |
Czyści Schowek, a następnie próbuje umieścić na nim dane o określonej liczbie i z określonym opóźnieniem między próbami, opcjonalnie pozostawiając dane w Schowku po zakończeniu działania aplikacji. |
SetDataObject(Object)
Czyści Schowek, a następnie umieszcza na nim dane niepersistentne.
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)
Parametry
- data
- Object
Dane do umieszczenia w Schowku.
Wyjątki
Nie można umieścić danych w Schowku. Zwykle dzieje się tak, gdy Schowek jest używany przez inny proces.
Bieżący wątek nie jest w trybie jednowątkowy (STA). Dodaj element STAThreadAttribute do metody aplikacji Main
.
Wartość to data
null
.
Przykłady
Poniższy przykład kodu używa SetDataObject metody do umieszczania danych tekstowych niepersistentnych w schowku systemowym. W metodzie button1_Click
zaznaczony tekst jest kopiowany i textBox1
wklejany w Schowku. W metodzie button2_Click
informacje są pobierane ze Schowka i wyświetlane w textBox2
pliku . W tym kodzie przyjęto założenie button1
, że element , button2
, textBox1
i textBox2
został utworzony i umieszczony w formularzu.
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
Uwagi
Dane zostaną usunięte ze schowka systemowego po zakończeniu działania aplikacji.
Ta metoda próbuje ustawić dane dziesięć razy w 100-milisekundowych interwałach i zgłasza błąd ExternalException , jeśli wszystkie próby nie powiedzą się.
Uwaga
Obiekt musi być serializowalny, aby można go było umieścić w Schowku. Jeśli przekażesz obiekt, który nie można serializować do tej metody, zakończy się niepowodzeniem bez zgłaszania wyjątku. Zobacz System.Runtime.Serialization , aby uzyskać więcej informacji na temat serializacji.
Klasę Clipboard można używać tylko w wątkach ustawionych na tryb apartamentów pojedynczego wątku (STA). Aby użyć tej klasy, upewnij się, że metoda Main
jest oznaczona atrybutem STAThreadAttribute .
Zobacz też
Dotyczy
SetDataObject(Object, Boolean)
Czyści Schowek, a następnie umieszcza na nim dane i określa, czy dane powinny pozostać po zakończeniu działania aplikacji.
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)
Parametry
- data
- Object
Dane do umieszczenia w Schowku.
- copy
- Boolean
true
jeśli chcesz, aby dane pozostały w Schowku po zakończeniu działania tej aplikacji; w przeciwnym razie , false
.
Wyjątki
Nie można umieścić danych w Schowku. Zwykle dzieje się tak, gdy Schowek jest używany przez inny proces.
Bieżący wątek nie jest w trybie jednowątkowy (STA). Dodaj element STAThreadAttribute do metody aplikacji Main
.
Wartość to data
null
.
Przykłady
Następująca metoda jest uruchamiana w aplikacji. Umieszcza on trwałą kopię zaznaczonych danych tekstowych w polu tekstowym w schowku systemowym. W tym kodzie przyjęto założenie button1
, że element , textBox1
i textBox2
został utworzony i umieszczony w formularzu.
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
W innej aplikacji poniższa metoda pobiera tekst ze schowka systemowego i wkleja tekst do textBox2
elementu . Ten kod zakłada button2
i textBox2
został utworzony i umieszczony w formularzu.
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
Uwagi
copy
Jeśli parametr ma false
wartość , dane zostaną usunięte ze schowka systemowego po zakończeniu działania aplikacji.
Ta metoda próbuje ustawić dane dziesięć razy w 100-milisekundowych interwałach i zgłasza błąd ExternalException , jeśli wszystkie próby nie powiedzą się.
Uwaga
Obiekt musi być serializowalny, aby można go było umieścić w Schowku. Jeśli przekażesz obiekt, który nie można serializować do tej metody, zakończy się niepowodzeniem bez zgłaszania wyjątku. Zobacz System.Runtime.Serialization , aby uzyskać więcej informacji na temat serializacji.
Klasę Clipboard można używać tylko w wątkach ustawionych na tryb apartamentów pojedynczego wątku (STA). Aby użyć tej klasy, upewnij się, że metoda Main
jest oznaczona atrybutem STAThreadAttribute .
Zobacz też
Dotyczy
SetDataObject(Object, Boolean, Int32, Int32)
Czyści Schowek, a następnie próbuje umieścić na nim dane o określonej liczbie i z określonym opóźnieniem między próbami, opcjonalnie pozostawiając dane w Schowku po zakończeniu działania aplikacji.
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)
Parametry
- data
- Object
Dane do umieszczenia w Schowku.
- copy
- Boolean
true
jeśli chcesz, aby dane pozostały w Schowku po zakończeniu działania tej aplikacji; w przeciwnym razie , false
.
- retryTimes
- Int32
Liczba prób umieszczenia danych w Schowku.
- retryDelay
- Int32
Liczba milisekund do wstrzymania między próbami.
Wyjątki
Bieżący wątek nie jest w trybie jednowątkowy (STA). Dodaj element STAThreadAttribute do metody aplikacji Main
.
data
to null
.
Parametr retryTimes
ma wartość niższą niż zero.
-lub-
Parametr retryDelay
ma wartość niższą niż zero.
Nie można umieścić danych w Schowku. Zwykle dzieje się tak, gdy Schowek jest używany przez inny proces.
Uwagi
Dodawanie danych do Schowka może czasami zakończyć się niepowodzeniem, jeśli Schowek jest zajęty innym wątkiem lub aplikacją. Ta metoda jest przydatna do obejścia tego problemu w środowiskach z dużym użyciem Schowka.
copy
Jeśli parametr ma false
wartość , dane zostaną usunięte ze schowka systemowego po zakończeniu działania aplikacji.
Uwaga
Obiekt musi być serializowalny, aby można go było umieścić w Schowku. Jeśli przekażesz obiekt, który nie można serializować do tej metody, zakończy się niepowodzeniem bez zgłaszania wyjątku. Zobacz System.Runtime.Serialization , aby uzyskać więcej informacji na temat serializacji.
Klasę Clipboard można używać tylko w wątkach ustawionych na tryb apartamentów pojedynczego wątku (STA). Aby użyć tej klasy, upewnij się, że metoda Main
jest oznaczona atrybutem STAThreadAttribute .