本文实例讲述了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; } }
private void GetTolSum() { if (tabControl1.TabCount == 0) { txtScore.Clear(); txtLevel.Clear(); return; } double tolsource = 0.00; for (int i = 0; i < tabControl1.TabCount; i++) { if (!tabControl1.TabPages[i].HasChildren) { continue; } tolsource += SumDgv((DataGridView)tabControl1.TabPages[i].Controls[0]); } GetScoreLevel(tolsource); SaveTol();}
希望本文所述对大家的C#程序设计有所帮助。