首页 新闻 会员 周边

求教C#动态创建子窗体问题?

0
悬赏园豆:200 [已关闭问题]

各位大大求教C#动态创建子窗体问题?

我问题是是:在C#中,有一个主界面,有2个以上子窗体,且子窗体在界面设计好内容、格式之后,编译为DLL文件。请问如何设计一个公共库可以在主界面中使用(公共库最也是DLL库),实现直接代入子窗体名称作为参数,就可以将子窗体加载生成,并能传递给子窗体2个参数,一个是用户名一个是口令,作为子窗体系统权限的判断使用。最后的效果是主界面、公共库DLL、子功能DLL窗体三者完全解耦,公共库和子窗体的任何修改都不会影响主界面。

谢谢!请高手帮忙! 

 

问题补充: 不好意思,我菜鸟,能举个例子吗?
360se的主页 360se | 初学一级 | 园豆:0
提问于:2009-12-03 14:22
< >
分享
其他回答(2)
0

重载Form的构造函数,

在包含子窗口的DLL中添加一个引用子窗口的类(例如c1),

在主窗口中新建一个c1类,用c1引用子窗口,这样就解耦了。

 

比如:

public class form1:form

{   

       public form1(int prameter1,int prameter2)

       {

        }

 }

public class refForm

{

         public refForm() { }

   public showForm(int prameter1,int prameter2)

   {

       form1 f=new form1(prameter1,prameter2);

       f.showdialog();

     }

 }

以上为子窗口所在的类库

以下为主窗口调用子窗口的类库

public class mainform:form

{

  public void showchildform()

  {

    refForm rf=new refForm();

      rf.showForm(prameter1,prameter2) ;

  }

}

 

当然在调用子窗口类库前,

要引入子窗口类库;

一滴血 | 园豆:1602 (小虾三级) | 2009-12-03 15:43
比如: public class form1:form { public form1(int prameter1,int prameter2) { } } public class refForm { public refForm() { } public showForm() { form1 f=new form1(1,2); f.showdialog(); } } 以上为子窗口所在的类库 以下为主窗口调用子窗口的类库 public class mainform:form { public void showchildform() { refForm rf=new refForm(); rf.showForm() } }
支持(0) 反对(0) 一滴血 | 园豆:1602 (小虾三级) | 2009-12-03 17:57
0

编译成DLL?那你建一个类库,里面用用户控件或者自定义空间了。这样你在主窗体项目中引用DDL后可以看到你写的控件了。至于参数,正如上面所说,你要自己写一个构造函数就好了。

Tom-X | 园豆:515 (小虾三级) | 2009-12-03 21:48
0

我那个盘古分词里面有一个 DictManage 程序就调用了一个我自己写的用户控件 PosDisplayCtrl

你可以下下来看看

下载地址

http://pangusegment.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=31536

在这个地址下下 PanGu_SourceV1.0.0.2.zip

这个文件

eaglet | 园豆:17139 (专家六级) | 2009-12-04 15:23
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册