Reklama

C# – Tipy, rady, návody – 11: Jak pracovat se schránkou

Úvod

Někdy potřebujeme vložit nebo naopak uložit ze schránky nějaký text, obrázek, nebo zvukovou stopu apod. K těmto účelům se využívá třída Clipboard ze jmenného prostoru System.Windows.Forms.

 

Pokud chceme do schránky vložit nějaký text tak ze třídy Clipboard použijeme metodu SetText, viz níže.
 
Clipboard.SetText(„Text pro vložení“);
 
Naopak pokud chceme ze schránky získat text, tak využijeme třídu GetText, viz níže.
 
string clipboarText = Clipboard.GetText();
 
Pokud pouze chceme zjistit, zda schránka obsahuje text tak lze využít metody ContainsText, viz níže.
 
bool cText = Clipboard.ContainsText();
 
Pokud metoda vrací true, tak schránka obsahuje text.
 
Podobně lze využít například metody pro práci s obrázky ve schránce SetImage, GetImage a ContainsImage a také pro práci se zvukovým souborem SetAudio, GetAudio a ContainsAudio.
 
Pokud chceme smazat obsah schránky tak využijeme metodu Clear, viz níže,
 
Clipboard.Clear();
 

Princip práce se schránkou demonstruje následující jednoduchý příklad zkopírování textu a obrázku, viz Obr. 1.
Obr. 1: Vzorová aplikace pro práci se schránkou

Obr. 1: Vzorová aplikace pro práci se schránkou

Vzorová aplikace obsahuje pět tlačítek („Button“), dva popisky („Label“) a dva obrázky (PictureBox), viz Tab. 1:

Tab. 1: Popis jednotlivých komponent

Jméno Popisek Akce Popis
buttonSetText Vložit text SetTextToClipboard Vložení textu do schránky
buttonGetText Kopírovat text GetTextToClipboard Zkopírování textu ze schránky
buttonSetPicture Vložit obrázek SetPictureToClipboard Vložení obrázku do schránky
buttonGetPicture Kopírovat obrázek GetPictureToClipboard Zkopírování obrázku ze schránky
buttonClearClipboard Smazat obsah ClearClipboard Smazání obsahu schránky
pictureBoxGetPicture - - Místo pro zobrazení zkopírovaného obrázku
pictureBoxSetPicture - - Obrázek pro vložení do schránky
labelGetText - - Popisek pro zobrazení textu ze schránky
labelSetText Text pro vložení do schránky - Text pro vložení do schránky
Okomentovaný zdrojový kód
 

001: using System;
002: using System.Collections.Generic;
003: using System.ComponentModel;
004: using System.Data;
005: using System.Drawing;
006: using System.Linq;
007: using System.Text;
008: using System.Threading.Tasks;
009: using System.Windows.Forms;
010:
011: namespace cs11
012: {
013: public partial class Form1 : Form
014: {
015: public Form1()
016: {
017: InitializeComponent();
018: }
019:
020: private void SetTextToClipboard(object sender, EventArgs e)
021: {
022: // vlozit do schranky text
023: Clipboard.SetText(labelSetText.Text);
024: }
025:
026: private void GetTextToClipboard(object sender, EventArgs e)
027: {
028: // kontrola zda schranka obsahuje text
029: if (Clipboard.ContainsText())
030: {
031: // vlozit do popisku text
032: labelGetText.Text = Clipboard.GetText();
033: }
034: else
035: {
036: MessageBox.Show("Schránka neobsahuje text.", "Informace o schránce",
037: MessageBoxButtons.OK, MessageBoxIcon.Information);
038: }
039: }
040:
041: private void SetPictureToClipboard(object sender, EventArgs e)
042: {
043: // vlozit do schranky obrazek
044: Clipboard.SetImage(pictureBoxSetPicture.Image);
045: }
046:
047: private void GetPictureToClipboard(object sender, EventArgs e)
048: {
049: // kontrola zda schranka obsahuje obrazek
050: if (Clipboard.ContainsImage())
051: {
052: // vlozit do obrazku vlozeny obrazek
053: pictureBoxGetPicture.Image = Clipboard.GetImage();
054: }
055: else
056: {
057: MessageBox.Show("Schránka neobsahuje obrázek.", "Informace o schránce",
058: MessageBoxButtons.OK, MessageBoxIcon.Information);
059: }
060: }
061:
062: private void ClearClipboard(object sender, EventArgs e)
063: {
064: Clipboard.Clear();// smazat obsah schránky
065: }
066: }
067: }

 

[1] Microsoft Developer Network. Clipboard Methods[online] citováno 3. ledna 2015. Dostupné na www: http://msdn.microsoft.com/cs-cz/library/System.Windows.Forms.Clipboard_methods(v=vs.100).aspx

 
 

Následující a předchozí příspěvek v kategorii:

 
Následující: C# – Tipy, rady, návody – 12: Jak si vytvořit vlastní ovládací prvek
Předchozí: C# – Tipy, rady, návody – 10: Jak zjistit seznam dostupných sériových portů
 
Tajned facebook
 

Za případné chyby v textu, ve zdrojovém kódě, nebo ve schématickém zapojení se omlouváme.
AUTOŘI NEBEROU ŽÁDNOU ODPOVĚDNOST ZA PŘÍPADNÉ ÚJMY NA ZDRAVÍ ČI MAJETKU.