日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

RichTextBox粘贴两次以及去掉粘贴内容的格式问题

發(fā)布時(shí)間:2025/7/14 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 RichTextBox粘贴两次以及去掉粘贴内容的格式问题 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

RichTextBox是一個(gè)支持RTF的文本框,但很多情況下我們并不希望用戶采用快捷鍵(如CTRL+V)來粘貼有格式的內(nèi)容,或者我們需要清除用戶粘貼的內(nèi)容的格式,怎么辦呢? 其實(shí)非常簡單: 去掉格式:把剪切板的字符串取出來放到一個(gè)變量中(這個(gè)過程就去掉格式了),再將變量中的值設(shè)回剪貼板,然后粘貼就ok了

private void tbClob_KeyDown(object sender, KeyEventArgs e){if (e.Control && e.KeyCode == Keys.V){IDataObject dataObj = Clipboard.GetDataObject();if (dataObj.GetDataPresent(DataFormats.StringFormat)){e.Handled = true; //去掉格式文本的格式 var txt = (string) Clipboard.GetData(DataFormats.StringFormat);Clipboard.Clear();Clipboard.SetData(DataFormats.StringFormat, txt);tbClob.Paste();}}}private void tbTemplate_KeyDown(object sender, KeyEventArgs e){//防止ctrl+v粘貼有格式的文本進(jìn)來 if (e.Control && e.KeyCode == Keys.V){e.Handled = true;//這句是關(guān)鍵,不然你會(huì)發(fā)現(xiàn)粘貼了兩次 v.miPaste.PerformClick();}}private void miPaste_Click(object sender, EventArgs e){v.tbTemplate.Paste(DataFormats.GetFormat(TextDataFormat.UnicodeText.ToString()));}

?

網(wǎng)上有很多種方式(純粹是擴(kuò)展閱讀,可以不看),例如自己擴(kuò)展一個(gè)RichTextBox,在其中攔截WM_PASTE消息,如下:

namespace WindowsApplication2 {internal class RichTextPaste : RichTextBox{protected override void WndProc(ref Message m){base.WndProc(ref m);switch (m.Msg){case 257:if ((int) m.LParam == -1071841279 && (int) m.WParam == 17){MessageBox.Show("Fired");}break;}}} }

?

有用,比較復(fù)雜,還有消息判斷簡單的,如:

protected override void WndProc(ref System.Windows.Forms.Message m) {if(m.Msg== WM_PASTE)//0x302:WM_PASTE 還有一種處理手法,就是注冊本應(yīng)用只接收文本類的粘貼,采用:RegisterClipboardFormat,也可以 {} }

?

采用:RegisterClipboardFormat,也可以

轉(zhuǎn)載于:https://www.cnblogs.com/Memory/archive/2012/07/21/2602176.html

總結(jié)

以上是生活随笔為你收集整理的RichTextBox粘贴两次以及去掉粘贴内容的格式问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。