http://blog.csdn.net/zx13525079024/article/details/6084733
今天在論壇上看到有人問到,如果在點擊TRVEVIEW時動態生成tabcontrol的選項卡,並在選項卡中添加窗體,於是寫了一個DEMO,供大家參考
demo下載:http://download.csdn.net/source/2920757
- public partial class Form5 : Form
- {
- public Form5()
- {
- InitializeComponent();
- }
- private void Form5_Load(object sender, EventArgs e)
- {
- TreeNode root = new TreeNode("電話繳費");
- root.Name = "root";
- treeView1.Nodes.Add(root);
- TreeNode tnMobile = new TreeNode("中國移動");
- tnMobile.Name = "mobile";
- root.Nodes.Add(tnMobile);
- TreeNode tnUnion = new TreeNode("中國聯通");
- tnUnion.Name = "union";
- root.Nodes.Add(tnUnion);
- root.Expand();
- }
- private TabPage tbMobile = null;
- private TabPage tbUnion = null;
- private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
- {
- if (treeView1.SelectedNode.Name=="mobile")
- {
- if (ErgodicModiForm("tbmobile", tabControl1))
- {
- tbMobile = new TabPage("中國移動");
- tbMobile.Name = "tbmobile";
- tabControl1.Controls.Add(tbMobile);
- Form6 form = new Form6();
- form.TopLevel = false;
- form.BackColor = Color.White;
- form.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
- form.FormBorderStyle = FormBorderStyle.None;
- form.Show();
- tbMobile.Controls.Add(form);
- }
- tabControl1.SelectedTab = tbMobile;
- }
- else if (treeView1.SelectedNode.Name=="union")
- {
- if (ErgodicModiForm("tbunion", tabControl1))
- {
- tbUnion = new TabPage("中國聯通");
- tbUnion.Name = "tbunion";
- tabControl1.Controls.Add(tbUnion);
- Form2 form = new Form2();
- form.TopLevel = false;
- form.BackColor = Color.White;
- form.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
- form.FormBorderStyle = FormBorderStyle.None;
- form.Show();
- tbUnion.Controls.Add(form);
- }
- tabControl1.SelectedTab = tbUnion;
- }
- }
- /// </summary>
- /// <param name="MainTabControlKey">選項卡的鍵值</param>
- /// <param name="objTabControl">要添加到的TabControl對象</param>
- /// <returns></returns>
- private Boolean ErgodicModiForm(string MainTabControlKey, TabControl objTabControl)
- {
- //遍歷選項卡判斷是否存在該子窗體
- foreach (Control con in objTabControl.Controls)
- {
- TabPage tab = (TabPage)con;
- if (tab.Name == MainTabControlKey)
- {
- return false;//存在
- }
- }
- return true;//不存在
- }
- }