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

 更新时间:2017年10月11日 08:32:58   作者:绛河  
这篇文章主要为大家详细介绍了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);
    }


  }
}

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

相关文章

  • C#利用deskew算法实现图像文本倾斜校正

    C#利用deskew算法实现图像文本倾斜校正

    这篇文章主要为大家详细介绍了C#如何利用deskew算法实现图像文本倾斜校正,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-01-01
  • 提权函数之RtlAdjustPrivilege()使用说明

    提权函数之RtlAdjustPrivilege()使用说明

    RtlAdjustPrivilege() 这玩意是在 NTDLL.DLL 里的一个不为人知的函数,MS没有公开,原因就是这玩意实在是太NB了,以至于不需要任何其他函数的帮助,仅凭这一个函数就可以获得进程ACL的任意权限!
    2011-06-06
  • OpenCvSharp图像的修改和保存以及掩膜操作

    OpenCvSharp图像的修改和保存以及掩膜操作

    这篇文章主要介绍了OpenCvSharp图像的修改和保存以及掩膜操作,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • c#中LINQ的基本用法实例

    c#中LINQ的基本用法实例

    语言集成查询 (LINQ) 是 Visual Studio 2008 和 .NET Framework 3.5 版中引入的一项创新功能。下面这篇文章主要给大家介绍了关于c#中LINQ的基本用法,需要的朋友可以参考借鉴,下面来一起看看吧
    2019-01-01
  • C# 定时器保活机制引起的内存泄露问题解决

    C# 定时器保活机制引起的内存泄露问题解决

    这篇文章主要介绍了C# 定时器保活机制引起的内存泄露问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • .NET单点登陆的实现方法及思路

    .NET单点登陆的实现方法及思路

    这篇文章介绍了.NET单点登陆的实现方法及思路,有需要的朋友可以参考一下,希望对你有所帮助
    2013-07-07
  • C#使用log4net的3种调用方法

    C#使用log4net的3种调用方法

    log4net是一个用于记录日志的开源框架,它是C#中最常用的日志记录工具之一,本文给大家介绍了C#使用log4net的3种调用方法,通过图文和代码给大家讲解的非常详细,需要的朋友可以参考下
    2024-03-03
  • C#开发之微信小程序发送模板消息功能

    C#开发之微信小程序发送模板消息功能

    这篇文章主要介绍了C#开发之微信小程序发送模板消息功能,需要的朋友可以参考下
    2017-09-09
  • C# 实现ADSL自动断网和拨号的方法(适用于拨号用户)

    C# 实现ADSL自动断网和拨号的方法(适用于拨号用户)

    下面小编就为大家带来一篇C# 实现ADSL自动断网和拨号的方法(适用于拨号用户)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-12-12
  • 解决WPF绘制矢量图形模糊的问题

    解决WPF绘制矢量图形模糊的问题

    这篇文章介绍了WPF绘制矢量图形模糊问题的解决方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06

最新评论