Clipboard.SetDataObject Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee wist u het Klembord en voegt u er vervolgens gegevens aan toe.
Overloads
| Name | Description |
|---|---|
| SetDataObject(Object) |
Hiermee wist u het Klembord en plaatst u er vervolgens niet-persistente gegevens op. |
| SetDataObject(Object, Boolean) |
Hiermee wist u het Klembord en plaatst u gegevens op het klembord en geeft u op of de gegevens moeten blijven nadat de toepassing is afgesloten. |
| SetDataObject(Object, Boolean, Int32, Int32) |
Wist het Klembord en probeert vervolgens het opgegeven aantal keren gegevens op het klembord te plaatsen en met de opgegeven vertraging tussen pogingen, eventueel de gegevens op het Klembord te verlaten nadat de toepassing is afgesloten. |
SetDataObject(Object)
Hiermee wist u het Klembord en plaatst u er vervolgens niet-persistente gegevens op.
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)
Parameters
- data
- Object
De gegevens die op het Klembord moeten worden geplaatst.
Uitzonderingen
Gegevens kunnen niet op het Klembord worden geplaatst. Dit gebeurt meestal wanneer het Klembord wordt gebruikt door een ander proces.
De huidige thread bevindt zich niet in sta-modus (single threaded apartment). Voeg de STAThreadAttribute methode van Main uw toepassing toe.
De waarde is datanull.
Voorbeelden
In het volgende codevoorbeeld wordt gebruikgemaakt SetDataObject van niet-persistente tekstgegevens op het klembord van het systeem. In de button1_Click methode wordt de geselecteerde tekst gekopieerd van textBox1 en geplakt op het Klembord. In de button2_Click methode wordt de informatie opgehaald van het Klembord en weergegeven in textBox2. Deze code gaat ervan uit datbutton1button2, textBox1en textBox2 is gemaakt en op een formulier is geplaatst.
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
Opmerkingen
Gegevens worden verwijderd uit het Klembord van het systeem wanneer de toepassing wordt afgesloten.
Deze methode probeert de gegevens tien keer in intervallen van 100 milliseconden in te stellen en genereert een ExternalException als alle pogingen mislukt zijn.
Note
Een object moet serialiseerbaar zijn om het op het Klembord te kunnen plaatsen. Als u een niet-serialiseerbare object doorgeeft aan deze methode, mislukt het zonder een uitzondering te genereren. Zie System.Runtime.Serialization voor meer informatie over serialisatie.
De Clipboard klasse kan alleen worden gebruikt in threads die zijn ingesteld op de STA-modus (Single Thread Apartment). Als u deze klasse wilt gebruiken, moet u ervoor zorgen dat uw Main methode is gemarkeerd met het kenmerk STAThreadAttribute.
Zie ook
Van toepassing op
SetDataObject(Object, Boolean)
Hiermee wist u het Klembord en plaatst u gegevens op het klembord en geeft u op of de gegevens moeten blijven nadat de toepassing is afgesloten.
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)
Parameters
- data
- Object
De gegevens die op het Klembord moeten worden geplaatst.
- copy
- Boolean
true als u wilt dat gegevens op het Klembord blijven nadat deze toepassing is afgesloten; anders, false.
Uitzonderingen
Gegevens kunnen niet op het Klembord worden geplaatst. Dit gebeurt meestal wanneer het Klembord wordt gebruikt door een ander proces.
De huidige thread bevindt zich niet in sta-modus (single threaded apartment). Voeg de STAThreadAttribute methode van Main uw toepassing toe.
De waarde is datanull.
Voorbeelden
De volgende methode wordt uitgevoerd in een toepassing. Er wordt een permanente kopie van de geselecteerde tekstgegevens in het tekstvak op het systeem Klembord geplaatst. Deze code gaat ervan uit dat button1textBox1en textBox2 is gemaakt en op een formulier is geplaatst.
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
In een andere toepassing haalt de volgende methode de tekst van het systeem Klembord op en plakt de tekst in textBox2. Deze code gaat ervan uit dat button2 en textBox2 is gemaakt en op een formulier is geplaatst.
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
Opmerkingen
Als de copy parameter is false, worden de gegevens verwijderd uit het Klembord van het systeem wanneer de toepassing wordt afgesloten.
Deze methode probeert de gegevens tien keer in intervallen van 100 milliseconden in te stellen en genereert een ExternalException als alle pogingen mislukt zijn.
Note
Een object moet serialiseerbaar zijn om het op het Klembord te kunnen plaatsen. Als u een niet-serialiseerbare object doorgeeft aan deze methode, mislukt het zonder een uitzondering te genereren. Zie System.Runtime.Serialization voor meer informatie over serialisatie.
De Clipboard klasse kan alleen worden gebruikt in threads die zijn ingesteld op de STA-modus (Single Thread Apartment). Als u deze klasse wilt gebruiken, moet u ervoor zorgen dat uw Main methode is gemarkeerd met het kenmerk STAThreadAttribute.
Zie ook
Van toepassing op
SetDataObject(Object, Boolean, Int32, Int32)
Wist het Klembord en probeert vervolgens het opgegeven aantal keren gegevens op het klembord te plaatsen en met de opgegeven vertraging tussen pogingen, eventueel de gegevens op het Klembord te verlaten nadat de toepassing is afgesloten.
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)
Parameters
- data
- Object
De gegevens die op het Klembord moeten worden geplaatst.
- copy
- Boolean
true als u wilt dat gegevens op het Klembord blijven nadat deze toepassing is afgesloten; anders, false.
- retryTimes
- Int32
Het aantal keren dat de gegevens op het Klembord moeten worden geplaatst.
- retryDelay
- Int32
Het aantal milliseconden dat moet worden onderbroken tussen pogingen.
Uitzonderingen
De huidige thread bevindt zich niet in sta-modus (single threaded apartment). Voeg de STAThreadAttribute methode van Main uw toepassing toe.
data is null.
Gegevens kunnen niet op het Klembord worden geplaatst. Dit gebeurt meestal wanneer het Klembord wordt gebruikt door een ander proces.
Opmerkingen
Het toevoegen van gegevens aan het Klembord kan af en toe mislukken als het Klembord bezig is met een andere thread of toepassing. Deze methode is handig om dit probleem in omgevingen met intensief klembordgebruik te omzeilen.
Als de copy parameter is false, worden de gegevens verwijderd uit het Klembord van het systeem wanneer de toepassing wordt afgesloten.
Note
Een object moet serialiseerbaar zijn om het op het Klembord te kunnen plaatsen. Als u een niet-serialiseerbare object doorgeeft aan deze methode, mislukt het zonder een uitzondering te genereren. Zie System.Runtime.Serialization voor meer informatie over serialisatie.
De Clipboard klasse kan alleen worden gebruikt in threads die zijn ingesteld op de STA-modus (Single Thread Apartment). Als u deze klasse wilt gebruiken, moet u ervoor zorgen dat uw Main methode is gemarkeerd met het kenmerk STAThreadAttribute.