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

时间:2021-05-20

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

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

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章