Hi GeoWar,
I have created the sample that full-fill your requirement.
Namespace
You need to import these namespace.
VB .Net
Imports System.Xml
C#
using System.Xml;
XML
<?xml version="1.0" encoding="utf-8"?>
<Tab_List>
<Tab>
Register
<Column>Register ID</Column>
<Column>Project Name</Column>
<Column>Description</Column>
<Column>Business Unit</Column>
<Column>Project Manager</Column>
<Column>Rating</Column>
<Column>Financial Owner</Column>
<Column>Business Owner</Column>
<Column>Comms Owner</Column>
<Column>Capital Flag</Column>
</Tab>
<Tab>
Financials
<Column>Financials ID</Column>
<Column>Project Name</Column>
</Tab>
</Tab_List>
Code
VB .Net
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
Dim doc As New XmlDocument()
doc.Load("D:\\Tab_List.xml")
Dim root As XmlElement = doc.DocumentElement
Dim node_list As XmlNodeList = root.GetElementsByTagName("Tab")
Dim x As Integer = 0
Dim Y As Integer = 0
For x = 0 To node_list.Count
Dim TB As New TabPage()
Dim No_Cols As Integer = node_list(x).ChildNodes.Count - 1
Me.SHEET_DEF.TabPages.Add(TB)
TB.Location = New System.Drawing.Point(4, 22)
TB.Name = node_list(x).FirstChild.InnerText
TB.Padding = New System.Windows.Forms.Padding(3)
TB.Size = New System.Drawing.Size(805, 172)
TB.TabIndex = x + 1
TB.Text = node_list(x).FirstChild.InnerText
TB.UseVisualStyleBackColor = True
Dim Col_Data_Grid As New DataGridView()
Col_Data_Grid.Name = node_list(x).FirstChild.InnerText + "DGV"
Col_Data_Grid.ColumnCount = node_list(x).ChildNodes.Count - 1
Col_Data_Grid.Location = New Point(8, 8)
Col_Data_Grid.Size = New Size(1000, 25)
Col_Data_Grid.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.DisplayedCellsExceptHeaders
'Col_Data_Grid.AutoSizeColumnsMode = DataGridViewAutoSizeColumnMode.DisplayedCells;
Col_Data_Grid.ColumnHeadersBorderStyle = DataGridViewHeaderBorderStyle.[Single]
Col_Data_Grid.CellBorderStyle = DataGridViewCellBorderStyle.[Single]
Col_Data_Grid.GridColor = Color.Black
Col_Data_Grid.RowHeadersVisible = False
Col_Data_Grid.SelectionMode = DataGridViewSelectionMode.FullRowSelect
Col_Data_Grid.MultiSelect = False
Col_Data_Grid.Dock = DockStyle.Fill
Col_Data_Grid.Visible = True
For Y = 1 To No_Cols
Col_Data_Grid.Columns(Y - 1).Name = node_list(x).ChildNodes(Y).InnerText
Next
Col_Data_Grid.Parent = Me.SHEET_DEF.TabPages(x)
'this.SHEET_DEF.TabPages.Remove(Register);
Me.SHEET_DEF.TabPages(x).Controls.Add(Me.Col_Data_Grid)
Next
End Sub
Friend WithEvents Register As System.Windows.Forms.TabPage
Friend WithEvents Col_Sel As System.Windows.Forms.DataGridView
Friend WithEvents ID As System.Windows.Forms.DataGridViewTextBoxColumn
Friend WithEvents Col_Data_Grid As System.Windows.Forms.DataGridView
C#
private void Form1_Load(object sender, System.EventArgs e)
{
XmlDocument doc = new XmlDocument();
doc.Load("D:\\Tab_List.xml");
XmlElement root = doc.DocumentElement;
XmlNodeList node_list = root.GetElementsByTagName("Tab");
int x = 0;
int Y = 0;
for (x = 0; x <= node_list.Count; x++)
{
TabPage TB = new TabPage();
int No_Cols = node_list[x].ChildNodes.Count - 1;
this.SHEET_DEF.TabPages.Add(TB);
TB.Location = new System.Drawing.Point(4, 22);
TB.Name = node_list[x].FirstChild.InnerText;
TB.Padding = new System.Windows.Forms.Padding(3);
TB.Size = new System.Drawing.Size(805, 172);
TB.TabIndex = x + 1;
TB.Text = node_list[x].FirstChild.InnerText;
TB.UseVisualStyleBackColor = true;
DataGridView Col_Data_Grid = new DataGridView();
Col_Data_Grid.Name = node_list[x].FirstChild.InnerText + "DGV";
Col_Data_Grid.ColumnCount = node_list[x].ChildNodes.Count - 1;
Col_Data_Grid.Location = new Point(8, 8);
Col_Data_Grid.Size = new Size(1000, 25);
Col_Data_Grid.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.DisplayedCellsExceptHeaders;
//Col_Data_Grid.AutoSizeColumnsMode = DataGridViewAutoSizeColumnMode.DisplayedCells;
Col_Data_Grid.ColumnHeadersBorderStyle = DataGridViewHeaderBorderStyle.Single;
Col_Data_Grid.CellBorderStyle = DataGridViewCellBorderStyle.Single;
Col_Data_Grid.GridColor = Color.Black;
Col_Data_Grid.RowHeadersVisible = false;
Col_Data_Grid.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
Col_Data_Grid.MultiSelect = false;
Col_Data_Grid.Dock = DockStyle.Fill;
Col_Data_Grid.Visible = true;
for (Y = 1; Y <= No_Cols; Y++)
{
Col_Data_Grid.Columns[Y - 1].Name = node_list[x].ChildNodes[Y].InnerText;
}
Col_Data_Grid.Parent = this.SHEET_DEF.TabPages[x];
this.SHEET_DEF.TabPages[x].Controls.Add(this.Col_Data_Grid);
//this.SHEET_DEF.TabPages.Remove(Register);
}
}
internal System.Windows.Forms.TabPage Register;
internal System.Windows.Forms.DataGridView Col_Sel;
internal System.Windows.Forms.DataGridViewTextBoxColumn ID;
internal System.Windows.Forms.DataGridView Col_Data_Grid;
Screenshot
