本文實例為大家分享了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); } }}
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。
新聞熱點
疑難解答