从dll类重写表单方法

时间:2014-03-21 15:15:28

标签: c# override

我想构建处理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”

2 个答案:

答案 0 :(得分:0)

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

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

您可以在此处找到一些示例:http://msdn.microsoft.com/library/system.windows.forms.control.wndproc%28v=vs.110%29.aspx

答案 1 :(得分:0)

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

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
}