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

本文实例为大家分享了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);
    }

  }
}

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

(0)

相关推荐

  • C#实现多选项卡的浏览器控件

    本文详细为大家分享了C#多选项卡的浏览器控件的设计与实现,供大家参考,具体内容如下 1.  为什么我们需要多选项卡的浏览器控件 项目中需要使用WinForm应用程序来包装BS应用程序的浏览器外壳,在.NET的WebBrowser中没有多选项卡浏览的自带配置属性,我们需要实现多选项卡的浏览器控件来实现包装BS应用程序的目的,而不会弹出IE浏览器窗口. 2. 我们需要了解哪些知识点 2.1.     WebBrowser控件 WebBrowser 控件为 WebBrowser ActiveX 控件提

  • C#更改tabControl选项卡颜色的方法

    本文实例讲述了C#更改tabControl选项卡颜色的方法.分享给大家供大家参考,具体如下: private void Form1_Load(object sender, EventArgs e) { this.tabControl1.DrawMode = System.Windows.Forms.TabDrawMode.OwnerDrawFixed; this.tabControl1.DrawItem += new DrawItemEventHandler(this.tabControl1_D

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

    本文实例为大家分享了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

  • C#开发WinForm之DataGridView开发详解

    前言 DataGridView是开发Winform的一个列表展示,类似于表格.学会下面的基本特征用法,再辅以经验,基本功能开发没问题. 基本的数据渲染 根据提供的数据展示出效果. 提供给DataGridView数据源有很多方式,大致有如下三种: 直接增加,每个单元格类型都是DataGridViewTextBoxCell int index=this.dataGridView1.Rows.Add(); this.dataGridView1.Rows[index].Cells[0].Value =

  • Spring集成Redis详解代码示例

    本文章从头开始介绍Spring集成Redis的示例. Eclipse工程结构 如下图为我的示例工程的结构图,采用Maven构建.其中需要集成Spring,因此需要beans.xml文件配置spring的依赖注入,redis.properties配置连接服务器的配置信息. 其中工程中beans.xml和redis.properties文件直接放在了根目录,有需要的读者可以放到resource目录中. POM依赖 如下为示例POM依赖,Spring集成redis需要依赖的包为:jedis包,spri

  • Spring Web MVC和Hibernate的集成配置详解

    网上看到很多关于Spring与Hibernate的集成的文章,奈何由于那些文章写作时间较早,很多都是Spring 3 和Hibernate 4等较旧的版本.所以我在这里使用更新的版本来说明一下. 添加项目依赖 首先我们需要一个Java Web项目,最好使用Maven或Gradle构建工具,方便我们解决软件依赖.我在这里使用Gradle构建工具,构建脚本如下.我们只要引入spring-webmvc和spring-orm这两个包,其他的Spring依赖会自动由构建工具解决.然后还需要引入数据源.Hi

  • Spring cloud config集成过程详解

    这篇文章主要介绍了spring cloud config集成过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 Spring Cloud Config 分为 Config Server: 分布式配置中心,是一个独立的微服务应用,用来连接配置服务器并为客户端提供获取配置信息 Config Client: 通过指定配置中心来管理应用资源,以及与业务相关的配置内容,并在启动的时候从配置中心获取和加载配置信息 Spring boot版本2.1.8.

  • springboot集成es详解

    1.导入 maven依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-dataelasticsearch</artifactId> <dependency> 注意 保持版本一致 我用的是7.6.2版本的 <properties> <java.version>1.8</jav

  • SonarQube实现自动化代码扫描安装及几种集成使用详解

    目录 1.安装Findbugs插件 2.IDEA集成 3.Gitlab集成 4.Jenkins集成 1.安装Findbugs插件 Sonar有自己的默认的扫描规则,可通过安装Findbugs插件,来提升代码漏洞扫描能力. (1)进入配置-->应用市场,搜索Findbugs,点击安装即可. 在质量配置中,设置FindBugs Security Audit为默认. (2)扫描效果测试 默认的扫描规则与设置FindBugs Security Audit的对比: 2.IDEA集成 通过IDEA集成Son

  • Java SpringBoot 集成 Redis详解

    目录 1.概述 Redis是什么? Redis能该干什么? 特性 2.测试Redis 3.自定义redisTemplate 1.概述 Redis是什么? Redis(Remote Dictionary Server ),即远程字典服务. 是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API. 与memcached一样,为了保证效率,数据都是缓存在内存中.区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加

  • 基于VSTS的Xamarin.Android持续集成步骤详解

    目录 Build Agent 环境需求 Build的部分分为以下步骤 1. 还原NuGet包 2. 替换版本号 3. 编译Android程序 4. 获取编译Andorid的AndroidManifest数据 5. 对编译好的Android apk进行签名 6. 删除多余的文件 7. 生成 ReleaseNotes 8. 生成预发布脚本 这些天做了一个,这里分享下 Build Agent 环境需求 DotNetFramework msbuild visualstudio AndroidSDK JD

  • flutter消息推送客户端集成方案详解

    目录 一.背景 二.第三方消息推送——个推 1.简介 2.注册开通 3.自定义消息推送——透传 三.项目集成 1.个推客户端flutter插件 2.Android和IOS配置 1)Android 2) iOS 3.通知栏插件flutter_local_notifications 4.个推消息与通知栏整合 最后 一.背景 公司一个CRM APP项目是用Flutter写的,根据业务要求,需要集成消息推送功能.所谓的消息推送就是系统会根据某些行为自动推送信息,手机的通知栏会接收到信息,点击可以打开ap

随机推荐