C# Winform选项卡集成窗体
2024-10-21 07:58:48
知识要点:利用反射动态的加载窗体到对应的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 = { , , };//用来记录窗体是否打开过 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] = ;
} private void tabControl1_SelectedIndexChanged(object sender, EventArgs e)
{
//只生成一次
if(s[tabControl1.SelectedIndex]==)
{
btn_Click(sender,e);
}
} /// <summary>
/// 通用按钮点击选项卡 在选项卡上显示对应的窗体
/// </summary>
private void btn_Click(object sender,EventArgs e)
{
string formClass=((TabControl)sender).SelectedTab.Tag.ToString();
GenerateForm(formClass, sender);
} }
}
最新文章
- CSS+DIV 设计一个简单的个人网页界面
- 微信小程序开放公测了 晚上又可以通宵搞代码了
- Spring(三)Bean继续入门
- wuzhicms私密下载链接生成
- [OJ] Matrix Zigzag Traversal
- Open-Falcon第七步安装报警模块(小米开源互联网企业级监控系统)
- 第九章 BootstrapTable的使用
- Codeforces Round #449 (Div. 2)-897A.Scarborough Fair(字符替换水题) 897B.Chtholly&#39;s request(处理前一半) 897C.Nephren gives a riddle(递归)
- Gitflow工作流程
- ACCA AI来袭会议笔记
- JOSN转列格式(csv文件)
- 微服务的发现与注册--Eureka
- python: 序列化/反序列化及对象的深拷贝/浅拷贝
- win7下安装Office2010老是出现提示安装MSXML6.10.1129.0,下载官方MSXML后提示安装成功却也安装不了
- QQ企业邮箱接口
- vue 路由跳转,路由传参的几种方式
- vs2017配置pthread.h的方法
- GEOquery
- MVC自定义路由02-实现IRouteConstraint限制控制器名
- Maven学习(三)-----Maven本地资源库