我试图使用以下方法覆盖winform文本框的onpaste方法:
当粘贴发生时,我不希望Windows处理它我想要我的代码。所以我做了以下事情:
if (m.Msg == WM_PASTE)
{
var evt = Pasted;
if (evt != null)
{
evt(this, new ClipboardEventArgs(Clipboard.GetText()));
}
}
else
{
base.WndProc(ref m);
}
这是一种安全的方法来让win32代码无法处理粘贴,还是有些情况我没看到?
答案 0 :(得分:0)
您应该使用此模式来定义粘贴事件:
public event ClipboardEventHandler Pasted;
protected virtual void OnPasted(ClipboardEventArgs e)
{
if (Pasted != null)
Pasted(this, e);
}
然后你调用OnPasted
而不是直接调用事件,因此派生类可以控制功能。