好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

C# Winform选项卡集成窗体详解

本文实例为大家分享了c# winform选项卡集成窗体的具体代码,供大家参考,具体内容如下

知识要点:利用反射动态的加载窗体到对应的tabpage的。

?

using system;

using system.collections.generic;

using system测试数据ponentmodel;

using system.data;

using system.drawing;

using system.linq;

using system.reflection;

using system.text;

using system.threading.tasks;

using system.windows.forms;

 

namespace mditest

{

   public partial class mainform : form

   {

     public mainform()

     {

       initializecomponent();

     }

 

     public int [] s = { 0, 0, 0 }; //用来记录窗体是否打开过

 

     private void mainform_load( object sender, eventargs e)

     {

       //默认加载cnc窗体

       string formclass = "mditest.cnc" ;

       generateform(formclass, tabcontrol1);

     }

 

     public void generateform( string form, object sender)

     {

       //反射生成窗体

       form fm = (form)assembly.getexecutingassembly().createinstance(form);

       //设置窗体没有边框,加入到选项卡中

       fm.formborderstyle = formborderstyle.none;

       fm.toplevel = false ;

       fm.parent = ((tabcontrol)sender).selectedtab;

       fm.controlbox = false ;

       fm.dock = dockstyle.fill;

       fm.show();

       s[((tabcontrol)sender).selectedindex] = 1;

     }

 

     private void tabcontrol1_selectedindexchanged( object sender, eventargs e)

     {

       //只生成一次

       if (s[tabcontrol1.selectedindex]==0)

       {

         btn_click(sender,e);

       }

     }

    

      /// <summary>

     /// 通用按钮点击选项卡 在选项卡上显示对应的窗体

     /// </summary>

     private void btn_click( object sender,eventargs e)

     {

       string formclass=((tabcontrol)sender).selectedtab.tag.tostring();

       generateform(formclass, sender);

     }

 

 

   }

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:http://HdhCmsTestcnblogs测试数据/janghe/archive/2017/10/10/7646144.html

dy("nrwz");

查看更多关于C# Winform选项卡集成窗体详解的详细内容...

  阅读:52次