关键属性 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;
}

  

 

winform的TabContorl的TabPage动态添加滚动条的更多相关文章

  1. winform中动态生成多行label,同时添加滚动条

    设计思路大概是这样的,Form内添加一个groupBox,groupBox内添加一个panel,panel的属性AutoScroll=true,在panel内动态添加label. 原始From如下: ...

  2. winform导入导出excel,后台动态添加控件

    思路: 导入: 1,初始化一个OpenFileDialog类 (OpenFileDialog fileDialog = new OpenFileDialog();) 2, 获取用户选择文件的后缀名(s ...

  3. 通过源码了解ASP.NET MVC 几种Filter的执行过程 在Winform中菜单动态添加“最近使用文件”

    通过源码了解ASP.NET MVC 几种Filter的执行过程   一.前言 之前也阅读过MVC的源码,并了解过各个模块的运行原理和执行过程,但都没有形成文章(所以也忘得特别快),总感觉分析源码是大神 ...

  4. winform窗体传值和动态添加控件

    1.跳转窗体时传值 //将要显示的页面实例化 RoleMenuForm rmf = new RoleMenuForm(); try { //在此给RoleMenuForm 窗体中的变量roleId传值 ...

  5. Mono for android 如何动态添加View,线程内部如何更新UI.

    貌似所有设计到UI的程序原理都是一样的,子线程是不能够更新UI状态的,所以就必须使用UI自身或者第三方来更新UI. 如 在WinForm 中 就可以使用Control.Invoke(Action ac ...

  6. VC中动态添加控件

    VC中动态添加控件 动态控件是指在需要时由Create()创建的控件,这与预先在对话框中放置的控件是不同的. 一.创建动态控件: 为了对照,我们先来看一下静态控件的创建. 放置静态控件时必须先建立一个 ...

  7. C# DataGridView控件动态添加新行

    C# DataGridView控件动态添加新行 DataGridView控件在实际应用中非常实用,特别需要表格显示数据时.可以静态绑定数据源,这样就自动为DataGridView控件添加相应的行.假如 ...

  8. C#控制IIS动态添加删除网站

    我的目的是在Winform程序里面,可以直接启动一个HTTP服务端,给下游客户连接使用. 查找相关技术,有两种方法: 1.使用C#动态添加网站应用到IIS中,借用IIS的管理能力来提供HTTP接口.本 ...

  9. C# Winform TabControl 双击关闭TabPage

    在使用TabControl控件时,需要考虑自动创建的TabPage页实现——关闭功能 思路一:自定义TabControl控件,添加关闭按钮 思路二:TabControl控件TabPage显示ToolT ...

  10. C# WPF后台动态添加控件(经典)

    概述 在Winform中从后台添加控件相对比较容易,但是在WPF中,我们知道界面是通过XAML编写的,如何把后台写好的控件动态添加到前台呢?本节举例介绍这个问题. 这里要用到UniformGrid布局 ...

随机推荐

  1. The 19th Zhejiang Provincial Collegiate Programming Contest

    目录 A.JB Loves Math B.JB Loves Comma C. JB Wants to Earn Big Money G. Easy Glide I. Barbecue L. Candy ...

  2. 一文总结高并发大数据量下MySQL开发规范【军规】

    在互联网公司中,MySQL是使用最多的数据库,那么在并发量大.数据量大的互联网业务中,如果高效的使用MySQL才能保证服务的稳定呢?根据本人多年运维管理经验的总结,梳理了一些核心的开发规范,希望能给大 ...

  3. 在Windows 2012 R2上安装vcenter 5.5

    在Windows 2012 R2上安装vCenter 5.5做个实验,发现安装的时候卡在Install Directory service了. 重启后,再装也一样. 上网查了一下,说是要装好ADLDS ...

  4. java script 日常学习 正则表达式

    <!DOCTYPE html><html><head> <title>函数的运用</title> <meta charset=&quo ...

  5. 第六章:Django 综合篇 - 17:CSRF与AJAX

    CSRF(Cross-site request forgery)跨站请求伪造,是一种常见的网络攻击手段,具体内容和含义请大家自行百度. Django为我们提供了防范CSRF攻击的机制. 一.基本使用 ...

  6. 使用logstash同步Mysql数据表到ES的一点感悟

    针对单独一个数据表而言,大致可以分如下两种情况: 1.该数据表中有一个根据当前时间戳更新的字段,此时监控的是这个时间戳字段 具体可以看这个文章:https://www.cnblogs.com/sand ...

  7. vue中a标签地址传参

     注意:  1)href前面加冒号"  :  ".     2)字符串用单引号包裹 .     3)传过去数值用+号连接 传值:<li class="list-li ...

  8. PHP实践项目【1】:注册登录页面

    在我们这个项目里面,一共用到了5个php文件,他们分别是: login.php 登录页面 logincheck.php 登录检测php文件 register.php 新用户注册页面 regcheck. ...

  9. 【算法训练营day1】LeetCode704. 二分查找 LeetCode27. 移除元素

    [算法训练营day1]LeetCode704. 二分查找 LeetCode27. 移除元素 LeetCode704. 二分查找 题目链接:704. 二分查找 初次尝试 看到题目标题是二分查找,所以尝试 ...

  10. Qt Quick 用cmake怎么玩子项目

    以下内容为本人的著作,如需要转载,请声明原文链接微信公众号「englyf」https://mp.weixin.qq.com/s/o-_aGqreuQda-ZmKktvxwA 以往在公司开发众多的项目中 ...