Clipboard.SetDataObject 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í.
Vymaže schránku a pak do ní přidá data.
Přetížení
SetDataObject(Object) |
Vymaže schránku a umístí na ni nepersistentná data. |
SetDataObject(Object, Boolean) |
Vymaže schránku a potom na ni umístí data a určí, jestli by data měla zůstat po ukončení aplikace. |
SetDataObject(Object, Boolean, Int32, Int32) |
Vymaže schránku a pak se pokusí na ni umístit data o zadaný počet a se zadaným zpožděním mezi pokusy, volitelně ponechá data ve schránce po ukončení aplikace. |
SetDataObject(Object)
Vymaže schránku a umístí na ni nepersistentná data.
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
Data, která se mají umístit do schránky.
Výjimky
Data nelze umístit do schránky. K tomu obvykle dochází, když schránku používá jiný proces.
Aktuální vlákno není v režimu STA (single-threaded apartment). Přidejte metodu STAThreadAttribute Main
aplikace.
Hodnota data
je null
.
Příklady
Následující příklad kódu používá SetDataObject k umístění nepersistentních textových dat do systémové schránky. button1_Click
V metodě se vybraný text zkopíruje a textBox1
vloží do schránky. button2_Click
V metodě jsou informace načteny ze schránky a zobrazeny v textBox2
. Tento kód předpokládá button1
, , button2``textBox1
a byly vytvořeny a textBox2
umístěny ve formuláři.
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
Data budou odstraněna ze schránky systému při ukončení aplikace.
Tato metoda se pokusí nastavit data desetkrát v 100 milisekundových intervalech a vyvolá ExternalException chybu, pokud všechny pokusy nejsou úspěšné.
Poznámka
Objekt musí být serializovatelný, aby byl umístěn do schránky. Pokud předáte objekt, který nelze serializovat do této metody, selže bez vyvolání výjimky. Další System.Runtime.Serialization informace o serializaci.
Třídu Clipboard lze použít pouze ve vláknech nastavených na režim STA (Single Thread Apartment). Chcete-li použít tuto třídu, ujistěte se, že je vaše Main
metoda označena atributem STAThreadAttribute .
Viz také
Platí pro
SetDataObject(Object, Boolean)
Vymaže schránku a potom na ni umístí data a určí, jestli by data měla zůstat po ukončení aplikace.
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
Data, která se mají umístit do schránky.
- copy
- Boolean
true
pokud chcete, aby data zůstala ve schránce po ukončení této aplikace; false
v opačném případě .
Výjimky
Data nelze umístit do schránky. K tomu obvykle dochází, když schránku používá jiný proces.
Aktuální vlákno není v režimu STA (single-threaded apartment). Přidejte metodu STAThreadAttribute Main
aplikace.
Hodnota data
je null
.
Příklady
Následující metoda se spustí v aplikaci. Umístí trvalou kopii vybraných textových dat do textového pole do systémové schránky. Tento kód předpokládá button1
, textBox1
a byly vytvořeny a textBox2
umístěny ve formuláři.
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
V jiné aplikaci následující metoda načte text ze systémové schránky a vloží text do textBox2
. Tento kód předpokládá button2
a textBox2
byl vytvořen a umístěn ve formuláři.
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
Poznámky
Pokud je false
parametr copy
, data se po ukončení aplikace odstraní ze systémové schránky.
Tato metoda se pokusí nastavit data desetkrát v 100 milisekundových intervalech a vyvolá ExternalException chybu, pokud všechny pokusy nejsou úspěšné.
Poznámka
Objekt musí být serializovatelný, aby byl umístěn do schránky. Pokud předáte objekt, který nelze serializovat do této metody, selže bez vyvolání výjimky. Další System.Runtime.Serialization informace o serializaci.
Třídu Clipboard lze použít pouze ve vláknech nastavených na režim STA (Single Thread Apartment). Chcete-li použít tuto třídu, ujistěte se, že je vaše Main
metoda označena atributem STAThreadAttribute .
Viz také
Platí pro
SetDataObject(Object, Boolean, Int32, Int32)
Vymaže schránku a pak se pokusí na ni umístit data o zadaný počet a se zadaným zpožděním mezi pokusy, volitelně ponechá data ve schránce po ukončení aplikace.
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
Data, která se mají umístit do schránky.
- copy
- Boolean
true
pokud chcete, aby data zůstala ve schránce po ukončení této aplikace; false
v opačném případě .
- retryTimes
- Int32
Počet pokusů o umístění dat do schránky
- retryDelay
- Int32
Počet milisekund, které se mají pozastavit mezi pokusy.
Výjimky
Aktuální vlákno není v režimu STA (single-threaded apartment). Přidejte metodu STAThreadAttribute Main
aplikace.
data
je null
.
Hodnota retryTimes
je menší než nula.
-nebo-
Hodnota retryDelay
je menší než nula.
Data nelze umístit do schránky. K tomu obvykle dochází, když schránku používá jiný proces.
Poznámky
Přidání dat do schránky může občas selhat, pokud je schránka zaneprázdněna jiným vláknem nebo aplikací. Tato metoda je užitečná při řešení tohoto problému v prostředích s velkým využitím schránky.
Pokud je false
parametr copy
, data se po ukončení aplikace odstraní ze systémové schránky.
Poznámka
Objekt musí být serializovatelný, aby byl umístěn do schránky. Pokud předáte objekt, který nelze serializovat do této metody, selže bez vyvolání výjimky. Další System.Runtime.Serialization informace o serializaci.
Třídu Clipboard lze použít pouze ve vláknech nastavených na režim STA (Single Thread Apartment). Chcete-li použít tuto třídu, ujistěte se, že je vaše Main
metoda označena atributem STAThreadAttribute .