从DLL类重写表单方法

本文关键字:表单 方法 重写 DLL | 更新日期: 2023-09-27 17:51:12

我想建立与system.windows.forms.form处理的dll文件,我怎么能从dll类覆盖任何表单方法,如(WndProc)?

public partial class MyDll
{
    public MyDll(System.Windows.Forms.Form form)
    {
        // i want to override WinProc form from my dll file.
    }
}

我的项目是一个"ClassLibrary"不是一个"WindowsFormsApplication"

从DLL类重写表单方法

您可以通过以下方式轻松地覆盖该方法:

protected override void WndProc(ref Message m){...}

在这里你可以找到一些例子:http://msdn.microsoft.com/library/system.windows.forms.control.wndproc%28v=vs.110%29.aspx

如果将表单作为参数传递,则得到的是类的实例,而不是定义。您必须创建自己的表单,覆盖前面提到的方法,然后将这个新表单传递给MyDll构造函数。例如:创建一个新的类库项目。添加两个文件:——MyDllClass.cs- MyForm (add new->Window Form)

public partial class MyForm : Form
{    
     protected override void WndProc(ref Message m)
    { 
        //your code here
        base.WndProc(ref m);
    } 
}

然后在MyDllClass.cs中你将有

public MyDllClass(Form your_form_here)
{
    //your code here
}