Clipboard.SetDataObject Metoda

Definice

Vymaže schránku a pak do ní přidá data.

Přetížení

Name Description
SetDataObject(Object)

Vymaže schránku a umístí do ní nepersistentná data.

SetDataObject(Object, Boolean)

Vymaže schránku a umístí do ní data a určí, jestli mají data zůstat po ukončení aplikace.

SetDataObject(Object, Boolean, Int32, Int32)

Vymaže schránku a pokusí se na ni umístit data zadaným počtem pokusů a se zadaným zpožděním mezi pokusy, volitelně ponechá data ve schránce po ukončení aplikace.

SetDataObject(Object)

Zdroj:
Clipboard.cs
Zdroj:
Clipboard.cs
Zdroj:
Clipboard.cs
Zdroj:
Clipboard.cs
Zdroj:
Clipboard.cs

Vymaže schránku a umístí do ní 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í v případě, že schránku používá jiný proces.

Aktuální vlákno není v režimu STA (Single-Threaded Apartment). Přidejte metodu STAThreadAttributeMain 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, , button2textBox1a 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, když aplikace ukončí.

Tato metoda se pokusí nastavit data desetkrát v intervalech 100 milisekund a vyvolá ExternalException chybu, pokud všechny pokusy nejsou úspěšné.

Note

Objekt musí být serializovatelný, aby byl umístěn do Schránky. Pokud předáte ne serializovatelný objekt této metodě, selže bez vyvolání výjimky. Další System.Runtime.Serialization informace o serializaci.

Třída Clipboard lze použít pouze ve vláknech nastavených na režim jednovláknového apartmentu (STA). Chcete-li použít tuto třídu, ujistěte se, že je vaše metoda Main označena atributem STAThreadAttribute.

Viz také

Platí pro

SetDataObject(Object, Boolean)

Zdroj:
Clipboard.cs
Zdroj:
Clipboard.cs
Zdroj:
Clipboard.cs
Zdroj:
Clipboard.cs
Zdroj:
Clipboard.cs

Vymaže schránku a umístí do ní data a určí, jestli mají data 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

truepokud chcete, aby data zůstala ve schránce po ukončení této aplikace; v opačném případě . false

Výjimky

Data nelze umístit do schránky. K tomu obvykle dochází v případě, že schránku používá jiný proces.

Aktuální vlákno není v režimu STA (Single-Threaded Apartment). Přidejte metodu STAThreadAttributeMain 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 v systémové schránce. Tento kód předpokládá button1, textBox1a 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 je 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

copy Pokud je falseparametr , data se při ukončení aplikace odstraní ze schránky systému.

Tato metoda se pokusí nastavit data desetkrát v intervalech 100 milisekund a vyvolá ExternalException chybu, pokud všechny pokusy nejsou úspěšné.

Note

Objekt musí být serializovatelný, aby byl umístěn do Schránky. Pokud předáte ne serializovatelný objekt této metodě, selže bez vyvolání výjimky. Další System.Runtime.Serialization informace o serializaci.

Třída Clipboard lze použít pouze ve vláknech nastavených na režim jednovláknového apartmentu (STA). Chcete-li použít tuto třídu, ujistěte se, že je vaše metoda Main označena atributem STAThreadAttribute.

Viz také

Platí pro

SetDataObject(Object, Boolean, Int32, Int32)

Zdroj:
Clipboard.cs
Zdroj:
Clipboard.cs
Zdroj:
Clipboard.cs
Zdroj:
Clipboard.cs
Zdroj:
Clipboard.cs

Vymaže schránku a pokusí se na ni umístit data zadaným počtem pokusů 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

truepokud chcete, aby data zůstala ve schránce po ukončení této aplikace; v opačném případě . false

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 STAThreadAttributeMain 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í v případě, že 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 těžkým používáním schránky.

copy Pokud je falseparametr , data se při ukončení aplikace odstraní ze schránky systému.

Note

Objekt musí být serializovatelný, aby byl umístěn do Schránky. Pokud předáte ne serializovatelný objekt této metodě, selže bez vyvolání výjimky. Další System.Runtime.Serialization informace o serializaci.

Třída Clipboard lze použít pouze ve vláknech nastavených na režim jednovláknového apartmentu (STA). Chcete-li použít tuto třídu, ujistěte se, že je vaše metoda Main označena atributem STAThreadAttribute.

Viz také

Platí pro