C# 从dll类重写窗体方法
我想构建处理system.windows.forms.form的dll文件。如何从dll类(如(WndProc))重写任何form方法C# 从dll类重写窗体方法,c#,overriding,C#,Overriding,我想构建处理system.windows.forms.form的dll文件。如何从dll类(如(WndProc))重写任何form方法 我的项目是“类库”而不是“WindowsFormsApplication”您可以通过以下方式轻松覆盖该方法: protected override void WndProc(ref Message m){...} 在这里您可以找到一些示例:如果您将表单作为参数传递,那么您拥有的是类的实例,而不是定义。您必须创建自己的表单,重写前面提到的方法,然后将此新表单传递
我的项目是“类库”而不是“WindowsFormsApplication”您可以通过以下方式轻松覆盖该方法:
protected override void WndProc(ref Message m){...}
在这里您可以找到一些示例:如果您将表单作为参数传递,那么您拥有的是类的实例,而不是定义。您必须创建自己的表单,重写前面提到的方法,然后将此新表单传递给MyDll构造函数。例如: 创建一个新的类库项目。添加两个文件: -MyDllClass.cs -MyForm(添加新->窗口窗体) 然后在MyDllClass.cs中
public MyDllClass(Form your_form_here)
{
//your code here
}
非常感谢,我只是想知道我是否可以覆盖dll文件中的任何表单方法,我的项目是“类库”而不是“WindowsFormsApplication”,这在技术上是可能的,但非常不明智。您可以从NativeWindow派生自己的类,并使用表单句柄调用其AssignHandle方法。当WndProc()覆盖得到WN\u NCDESTROY时,再次调用ReleaseHandle()。有很多方法可以帮你一臂之力。非常感谢你,我只是想知道我是否可以覆盖dll文件中的任何表单方法,我的项目是“类库”而不是“WindowsFormsApplication”
public partial class MyForm : Form
{
protected override void WndProc(ref Message m)
{
//your code here
base.WndProc(ref m);
}
}
public MyDllClass(Form your_form_here)
{
//your code here
}