C# winform自定義控件的實(shí)現(xiàn)方法
在winform開(kāi)發(fā)中,有時(shí)候需要對(duì)原有控件進(jìn)行修改,本文就textbox控件為例,增加不能復(fù)制、粘貼、剪切textbox文本框內(nèi)的內(nèi)容。詳細(xì)介紹如何實(shí)現(xiàn)。
創(chuàng)建自定義控件

增加屬性方法
//注意繼承父類對(duì)象,System.Windows.Forms.TextBox
public partial class NoCopyPasteTextBox : System.Windows.Forms.TextBox
{ // 系統(tǒng)消息常量:剪貼板操作相關(guān)
private const int WM_COPY = 0x0301; // 復(fù)制
private const int WM_CUT = 0x0300; // 剪切
private const int WM_PASTE = 0x0302; // 粘貼
protected override void WndProc(ref Message m)
{
// 攔截復(fù)制、剪切、粘貼的系統(tǒng)消息
if (m.Msg == WM_COPY || m.Msg == WM_CUT || m.Msg == WM_PASTE)
{
return; // 忽略消息,不執(zhí)行默認(rèn)操作
}
// 其他消息正常處理
base.WndProc(ref m);
}
protected override void OnKeyDown(KeyEventArgs e)
{
// 攔截快捷鍵(雙重保險(xiǎn))
if ((e.Control && e.KeyCode == Keys.C) ||
(e.Control && e.KeyCode == Keys.V) ||
(e.Control && e.KeyCode == Keys.X))
{
e.Handled = true;
e.SuppressKeyPress = true;
return;
}
base.OnKeyDown(e);
}
public NoCopyPasteTextBox()
{
// 禁用右鍵菜單
this.ContextMenu = new ContextMenu();
}
}
調(diào)用控件
重新編譯后,在控件欄就可以看到自定義的控件,然后執(zhí)行拖拉

到此這篇關(guān)于C# winform自定義控件的實(shí)現(xiàn)方法的文章就介紹到這了,更多相關(guān)C# winform自定義控件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C#實(shí)現(xiàn)文件讀寫(xiě)到SQLite數(shù)據(jù)庫(kù)
這篇文章主要為大家詳細(xì)介紹了使用?C#?將文件讀寫(xiě)到?SQLite?數(shù)據(jù)庫(kù)的幾種方法,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以參考一下2025-01-01
Unity shader實(shí)現(xiàn)移動(dòng)端模擬深度水效果
這篇文章主要為大家詳細(xì)介紹了Unity shader實(shí)現(xiàn)移動(dòng)端模擬深度水效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-05-05
C# 圖片與二進(jìn)制轉(zhuǎn)換的簡(jiǎn)單實(shí)例
這篇文章介紹了C# 圖片與二進(jìn)制轉(zhuǎn)換的簡(jiǎn)單實(shí)例,有需要的朋友可以參考一下2013-09-09
C#實(shí)現(xiàn)windows系統(tǒng)重啟和關(guān)機(jī)的代碼詳解
這篇文章主要介紹了C#實(shí)現(xiàn)windows系統(tǒng)重啟和關(guān)機(jī)的的方法,涉及C#調(diào)用windows系統(tǒng)命令實(shí)現(xiàn)控制開(kāi)機(jī)、關(guān)機(jī)等操作的技巧,非常簡(jiǎn)單實(shí)用,需要的朋友可以參考下2024-02-02
C# 鼠標(biāo)穿透窗體功能的實(shí)現(xiàn)方法
通過(guò)以下代碼,在窗體啟動(dòng)后調(diào)用方法SetPenetrate() 即可實(shí)現(xiàn)窗體的穿透功能,有需要的朋友可以參考一下2013-10-10

