• winform的TabContorl的TabPage动态添加滚动条


    关键属性 AutoScrollMinSize 

     private int minWidth = 800;
     private int minHeight = 600;
     List<Form> listForm = new List<Form>();
     private Assembly assembly = Assembly.GetExecutingAssembly(); // 获取当前程序集 
            private void navMenu_MenuItemClick(string itemText, int menuIndex, int pageIndex)
            {
                string name = "";
                string title = "";
                foreach (TreeNode item in navMenu.Nodes[navMenu.SelectedIndex].Nodes)
                {
                    if (item.Text == itemText)
                    {
                        name = item.Name;
                        title = item.Text;
                        break;
                    }
                }
                //获取屏幕除了任务栏的高宽
                int w = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Width;
                //高度减去系统标题头的高度
                int h = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Height - 100;
    
                Sunny.UI.Common.ShowWaitForm();
                try
                {
        //检测当前FORM是否存在。
                    Form form = listForm.SingleOrDefault(a => a.Name == name);
                    if (form != null && form.IsDisposed)
                    {
                        listForm.Remove(form);
                        form = null;
                    }
                    if (form == null)
                    {
                        //新建page
                        TabPage tabPage = new TabPage();
                        tabPage.Name = name + "_tab";
                        tabPage.Tag = name;
                        tabPage.TabIndex = listForm.Count;
                        tabPage.Text = title;
                        tabPage.UseVisualStyleBackColor = true;
                        tabPage.AutoScroll = true;
                        tabPage.AutoScrollMinSize = new Size(w, h);
                        mianTabContorl.Controls.Add(tabPage);
                        //新建panel,网上听说要添加pannel。可是没用
                        //UIPanel uIPanel = new UIPanel();
                        //uIPanel.Font = new System.Drawing.Font("微软雅黑", 9F);
                        //uIPanel.Text = "";
                        //uIPanel.Dock = DockStyle.Fill;
                        //uIPanel.AutoScroll = true;
                        //uIPanel.MinimumSize = new Size(minWidth, minHeight);
                        //tabPage.Controls.Add(uIPanel);
                       //根据命名空间.类名动态创建Form对象
                        form = (Form)assembly.CreateInstance("TestProduct." + name);
                        form.MdiParent = this;
                        form.FormBorderStyle = FormBorderStyle.None;
                        //form.Parent = uIPanel;
                        form.Parent = tabPage;
                        //不可使用WindowState
                        // form.WindowState = FormWindowState.Maximized;
                        //设置最大高宽,最小高宽
                        form.MinimumSize = new Size(w, h);
                        //填充pannel
                        form.Dock = DockStyle.Fill;
                        form.Show();
                       
                        listForm.Add(form);
                        mianTabContorl.SelectedTab = tabPage;
                    }
                    else
                    {
                        mianTabContorl.SelectedTab = GetTabPage(form.Name);
                    }
    
                }
                catch (Exception ex)
                {
                    Sunny.UI.Common.ShowErrorDialog("错误消息:" + ex.Message);
                }
                finally
                {
                    Sunny.UI.Common.HideWaitForm();
                }
            }
       private TabPage GetTabPage(string name)
            {
                TabPage tb = null;
                foreach (TabPage item in mianTabContorl.TabPages)
                {
                    if (item.Tag.ToString() == name)
                    {
                        tb = item;
                    }
                }
                return tb;
            }    
    

      

     

  • 相关阅读:
    P2617 Dynamic Rankings 动态主席树
    P4338 [ZJOI2018]历史 LCT+树形DP
    P3348 [ZJOI2016]大森林
    P3613 睡觉困难综合征 LCT+贪心+位运算
    SP16549 QTREE6
    P3703 [SDOI2017]树点涂色 LCT维护颜色+线段树维护dfs序+倍增LCA
    U19464 山村游历(Wander) LCT维护子树大小
    P4219 [BJOI2014]大融合 LCT维护子树大小
    P2542 [AHOI2005]航线规划 LCT维护双连通分量
    P3950 部落冲突
  • 原文地址:https://www.cnblogs.com/bklsj/p/15250499.html
Copyright © 2020-2023  润新知