Winform动态加载TabControl用法

private void BindTabData()
        {
            dtIPD = new DataTable();
            //drItem = new DataTable();
            //获取【项目大类】列表显示于 TabPage
            MRD_Score model = new MRD_Score();
            model.ActiveFlag = "Y";
            DataTable dtScore = fmed.GetScoreType(model);
            foreach (DataRow dr in dtScore.Rows)
            {
                MRD_Score sr = new MRD_Score();
                sr.PCode = dr["ProCode"].ToString();

                TabPage tabpage = new System.Windows.Forms.TabPage(dr["ProName"].ToString().Trim());
                tabpage.Name = dr["ProName"].ToString().Trim();
                tabpage.AutoScroll = true;
                tabpage.Text = dr["ProName"].ToString().Trim();
                //获取大类下的 缺陷项目列表  txtIPD_NO.Text.Trim()
               DataTable  drItem = fmed.getScoreItemType(sr.PCode, "");
                drItem.Columns.Add("缺陷数", Type.GetType("System.Int32"));
                drItem.Columns.Add("已审核", Type.GetType("System.Int32"));
                drItem.Columns.Add("评分时间", Type.GetType("System.String"));
                drItem.Columns.Add("评分人", Type.GetType("System.String"));
                drItem.Columns.Add("审核时间", Type.GetType("System.String"));
                drItem.Columns.Add("审核人", Type.GetType("System.String"));
                DataGridView dgv = new DataGridView();
                dgv.AllowUserToAddRows = false;//禁用新增
                dgv.AllowUserToDeleteRows = false; //禁用删除
                dgv.Width = 960;
                dgv.Height = 600;
                dgv.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.DisplayedCells;

                dgv.CellValidating += new DataGridViewCellValidatingEventHandler(dgv_CellValidating);//验证是否为数字
                dgv.CellBeginEdit += new DataGridViewCellCancelEventHandler(dgv_CellBeginEdit);// 设置 是否可以编辑
                dgv.CellEndEdit += new DataGridViewCellEventHandler(dgv_CellEndEdit);
                //dgv.CellFormatting += new DataGridViewCellFormattingEventHandler(dgv_CellFormatting);
                dgv.DataSource = drItem;
                dtIPD = fmed.getScoreItemType(sr.PCode, txtIPD_NO.Text.Trim());
                tabpage.Controls.Add(dgv);
                this.tabControl1.Controls.Add(tabpage);
                SetInputValue(dgv, dtIPD);//加载已经输入的分值
                total += getDeFen(dgv, dtIPD);

                dgv.Columns["PCode"].Visible = false;
                dgv.Columns["ItemCode"].Visible = false;
                dgv.Columns["评分人"].Visible = false;
                dgv.Columns["审核人"].Visible = false;
            }
        }
 1 private void GetTolSum()
 2         {
 3             if (tabControl1.TabCount == 0)
 4             {
 5                 txtScore.Clear();
 6                 txtLevel.Clear();
 7                 return;
 8             }
 9             double tolsource = 0.00;
10             for (int i = 0; i < tabControl1.TabCount; i++)
11             {
12                 if (!tabControl1.TabPages[i].HasChildren)
13                 {
14                     continue;
15                 }
16                 tolsource += SumDgv((DataGridView)tabControl1.TabPages[i].Controls[0]);
17             }
18             GetScoreLevel(tolsource);
19             SaveTol();
20
21         }
时间: 2024-08-18 16:30:36

Winform动态加载TabControl用法的相关文章

Winform动态加载TabControl用法实例

本文实例讲述了Winform动态加载TabControl用法.分享给大家供大家参考. 具体实现代码如下: 代码如下: private void BindTabData() { dtIPD = new DataTable(); //drItem = new DataTable(); //获取[项目大类]列表显示于 TabPage MRD_Score model = new MRD_Score(); model.ActiveFlag = "Y"; DataTable dtScore = f

C# checklistbox控件用法总结(怎样得到多选的值,以及动态加载数据)

C# checklistbox控件用法总结(怎样得到多选的值,以及动态加载数据) 一般认为:foreach (object obj in checkedListBox1.SelectedItems)即可遍历选中的值. 其实这里遍历的只是高亮的值并不是打勾的值.遍历打勾的值要用下面的代码: for (int i = 0; i < checkedListBox1.Items.Count; i++) { if (checkedListBox1.GetItemChecked(i)) { MessageB

Class类动态加载类的用法

编译时刻加载类出现的问题:一个功能有错,所有功能都用不了 动态加载类:

动态加载类的用法

1.动态加载类实现 首先要创建一个Word类的类类型,在通过类类型创建一个满足OfficeAble(标准)的一个对象s,通过对象s就可以调用Word类中的方法. import T1.OfficeAble; public class Office1 { public static void main(String[] args) { try { Class c= Class.forName("T1.Word"); //传入什么类就 加载什么类 //创建对象 OfficeAble s=(O

7. 反射技术:其实就是动态加载一个指定的类

反射技术:其实就是动态加载一个指定的类,并获取该类中的所有的内容.而且将字节码文件封装成对象,并将字节码文件中的内容都封装成对象,这样便于操作这些成员.简单说:反射技术可以对一个类进行解剖. 反射的好处:大大的增强了程序的扩展性. 反射的基本步骤: 1.获得Class对象,就是获取到指定的名称的字节码文件对象. 2.实例化对象,获得类的属性.方法或构造函数. 3.访问属性.调用方法.调用构造函数创建对象. 获取这个Class对象,有三种方式: 1:通过每个对象都具备的方法getClass来获取.

[AngularJS] 使用AngularAMD动态加载Service

[AngularJS] 使用AngularAMD动态加载Service 前言 「使用AngularAMD动态加载Controller」:这篇文章里介绍如何使用AngularAMD来动态加载Controller.本篇文章以此为基础,介绍如何使用AngularAMD来动态加载Service,让SPA的启动过程更加轻量化,用以提升使用者的操作体验.并且也透过这样挂载式的设计,让项目功能更加模块化,增加开发与维护的工作效率.主要为自己留个纪录,也希望能帮助到有需要的开发人员. AngularAMD 安装

关于动态加载js

已知一个需要动态加载的js的文件路径数组,动态加载数组里面所有的js文件. 加载分两种情况: 1. 并行加载,不管js的执行顺序. 2. 串行加载,即一个一个加载,上一个加载完再加载下一个,直到最后. 动态加载js一般都是动态创建一个script, 解决第一种情况: function loadExternalFile(src,parentElement,tagName){ var elem = document.createElement(tagName); if(tagName==='link

[AngularJS] 使用AngularCSS动态加载CSS

[AngularJS] 使用AngularCSS动态加载CSS 前言 使用AngularAMD动态加载Controller 使用AngularAMD动态加载Service 上列两篇文章里,介绍了如何如何使用AngularAMD来动态加载Controller与Service.本篇文章以此为基础,介绍如何使用AngularCSS来动态加载CSS,让项目功能更加模块化,增加开发与维护的工作效率.主要为自己留个纪录,也希望能帮助到有需要的开发人员. AngularCSS 安装 本篇文章以「使用Angul

ReportView动态加载带参数的RDCL文件

在vs里新建一个winform程序"ReportViewTest",在form1中添加一个reportView控件,from1的load事件如下: private void Form1_Load(object sender, EventArgs e) { DataSet ds = new DataSet(); try { ds = getDS(); } catch (Exception) { throw; } Microsoft.Reporting.WinForms.ReportDat