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);
}
}
}
来源: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