Sdílet prostřednictvím


Clipboard.SetDataObject Metoda

Definice

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``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 );
      }
      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; falsev 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, 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 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 falseparametr 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; falsev 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 falseparametr 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 .

Viz také

Platí pro