小菜學習Winform(六)剪下板和拖放複製

2021-09-06 13:53:44 字數 1897 閱讀 9800

在做winform專案的時候有時候會用到複製貼上,在.net中提供了clipboard類來操作剪下板,我們來看下。

直接在執行裡面敲入」clipbrd「命令就可以開啟clipbrd剪下板程式。

可以直接複製一些文字,clipbrd

程式會實時的顯示出來。

關於clipboard類文字複製貼上主要使用方法:clipboard.settext、clipboard.containstext和clipboard.gettext,分別是設定文字、判斷文字存在和獲取文字。我們看個示例:

1

///2

///複製

3///

4///

5///

6private

void button1_click(object

sender, eventargs e)713

14///

15///

貼上16

///17

///18

///19

private

void button2_click(object

sender, eventargs e)

20

執行結果:

上面說的是剪下板的文字複製,clipboard類也支援複製貼上,提供的靜態方法是:clipboard.setimage、clipboard.containsimage和clipboard.getimage,複製貼上的使用方法和文字複製貼上一樣,參考上面的**就行。getimage方法返回的是image物件。

平常我們複製貼上都是ctrl+c/ctrl+v,但是這種操作會比較繁瑣,我們想利用滑鼠就可以快速的複製貼上,這種在winform中是可以實現的,我們看下示例:

1

private

void lvsource_itemdrag(object

sender, itemdrageventargs e)25

6private

void txtmessage_dragenter(object

sender, drageventargs e)710

11private

void txtmessage_dragdrop(object

sender, drageventargs e)

12

我們做的示例是拖放listview中的項複製到textbox中,lvsource_itemdrag事件在拖放項時發生,lvsource.dodragdrop(e.item, dragdropeffects.copy);這句**的意思是開始拖放操作:傳遞資料(要複製的值)和設定拖放操作效果。dragdropeffects是列舉型別:

成員名稱

說明all

copy 、move 和 scroll 效果的組合。

copy

將拖動源中的資料複製到放置目標。

link

將拖動源中的資料鏈接到放置目標。

move

將拖動源的資料移動到放置目標。

none

放置目標不接受該資料。

scroll

拖動時可以滾動目標,以定位在目標中當前不可見的某個放置位置。

txtmessage_dragenter作用就是設定目標的放置效果,如果注釋掉事件裡面的**,就會出現下面這種情況,並且值沒有複製。

txtmessage_dragdrop事件是拖放完成做的操作,從**中我們可以看出,獲取拖放的值並不是從剪下板中取的,而是通過引數傳遞,也就是一開始lvsource.dodragdrop(e.item, dragdropeffects.copy);在做拖放的時候,我們看下clipbrd.exe程式裡並沒有拖放的值。

執行結果:

剪下板和拖放複製.rar

附錄:小菜學習程式設計-winform系列(初學者)

剪下板操作 複製,剪下

copyfile.h pragma once include include include include include include using namespace std class ccopyfilesoper copyfile.cpp include stdafx.h include ...

CEGUI剪下板功能

剪下板功能實現,具體方法很簡單 分2部分 測試 在editbox裡實現剪下板 第一,字元的轉換,在editbox裡加入了2個函式,是cegui string 和 std string之間的轉換 第二,在void editbox onkeydown keyeventargs e 函式裡 通過 gets...

C 剪下板操作

複製資料至剪下板 bool copytoclipboard const char pszdata,const int ndatalen return false 從剪下板中取得資料 bool gettextfromclipboard closeclipboard return true return...