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

作者:绛河 时间:2021-08-12 17:13:55 

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

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


using System;
using System.Collections.Generic;
using System.ComponentModel;
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);
   }

}
}

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

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

来源:http://www.cnblogs.com/janghe/archive/2017/10/10/7646144.html

标签:C#,Winform,选项卡,窗体
0
投稿

猜你喜欢

  • mybatis-plus使用generator实现逆向工程

    2022-06-05 20:16:49
  • Android稳定性:可远程配置化的Looper兜底框架

    2022-02-18 09:02:23
  • 解决@Api注解不展示controller内容的问题

    2022-08-29 21:16:38
  • PullToRefreshListView实现多条目加载上拉刷新和下拉加载

    2022-07-21 02:26:01
  • Mybatis plus多租户方案的实战踩坑记录

    2023-08-01 05:19:09
  • Java MultipartFile实现上传文件/上传图片

    2022-04-19 07:07:19
  • Android实现选项菜单子菜单

    2023-06-14 16:06:26
  • 快速学习六大排序算法

    2023-11-02 22:36:19
  • Java如何实现http接口参数和返回值加密

    2023-08-23 12:28:37
  • c# base64转字符串实例

    2021-06-25 01:47:54
  • Java调用shell命令涉及管道、重定向时不生效问题及解决

    2021-07-18 17:02:25
  • 微信开发--自定义菜单查询返码乱码的解决方法

    2023-11-25 04:47:55
  • Intellij IDEA 2020.3 配置教程详解

    2023-07-01 21:34:23
  • Java多线程之同步工具类Exchanger

    2022-07-05 03:50:54
  • java模拟实现斗地主发牌小程序

    2021-07-20 01:55:11
  • C#实现XML与实体类之间相互转换的方法(序列化与反序列化)

    2022-05-14 03:39:32
  • Spring Boot实现STOMP协议的WebSocket的方法步骤

    2022-10-01 07:12:27
  • SpringBoot+JSON+AJAX+ECharts+Fiddler实现前后端分离开发可视化

    2021-11-12 14:49:17
  • 浅析C#中结构与类的区别

    2023-09-12 23:41:39
  • 详谈.net中的垃圾回收机制

    2022-12-04 03:52:27
  • asp之家 软件编程 m.aspxhome.com