Nearest Neighbour Program for BOM List 26.11.19, Lars Bittcher, C# #### MAIN PROGRAM #### using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Data.OleDb; using System.Globalization; namespace kNN1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); DataGridViewButtonColumn bnCol = new DataGridViewButtonColumn(); bnCol.Text = "here"; bnCol.UseColumnTextForButtonValue = true; dataGridView1.Columns.Add(bnCol); } OleDbConnection connection = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\bittlars\Desktop\kNN1\kNN1\AllBOM.accdb"); List> SFIVectorList = new List>(); List distances = new List(); int distinct, VINCount; string currentSFI; DataTable table = new DataTable(); void cCommand(OleDbCommand Command, string command) { Command.CommandType = CommandType.Text; Command.CommandText = command; Command.ExecuteNonQuery(); } void kNN1(ref int[] vector1, ref int[] vector0, ref int distinct, ref string difference) { List sum = new List(); for (int a = 0; a < vector0.Length; a++) { if (vector1[a] - vector0[a] != 0) { sum.Add(a + 1); } } difference = String.Join(" ", sum); } string kNN(int[] vector1, int[] vector0, ref int distinct) { int sum1 = 0; for (int a = 0; a < vector0.Length; a++) { sum1 += ((vector1[a] - vector0[a]) * (vector1[a] - vector0[a])); } double distance = Math.Sqrt((double)sum1); return distance.ToString(); } void BoW(List> SFIList, List distinctSFI, int[][] SFIVectorArray) { for (int a = 0; a < SFIList.Count; a++) { SFIVectorArray[a] = new int[distinct]; for (int c = 0; c < distinctSFI.Count; c++) { SFIVectorArray[a][c] = 0; } for (int b = 0; b < SFIList[a].Count; b++) { for (int c = 0; c < distinctSFI.Count; c++) { if (SFIList[a][b].Equals(distinctSFI[c])) { SFIVectorArray[a][c]++; break; } } } } } void CompareWholeSFI(List basic, List comparer, ref bool a) { //Compare whole strings a = basic.All(comparer.Contains) && basic.Count == comparer.Count; if (a == true) { //marking the comparer comparer[0] = "000"; } else { } } private void dataGridView3_CellContentClick(object sender, DataGridViewCellEventArgs e) { } private void dataGridView2_CellContentClick(object sender, DataGridViewCellEventArgs e) { } private void label1_Click(object sender, EventArgs e) { } private void textBox1_TextChanged(object sender, EventArgs e) { } private void Form1_Load(object sender, EventArgs e) { } private void Train_Click(object sender, EventArgs e) { List> SFIList = new List>(); List> distinctSFIList = new List>(); List> SFIIndex = new List>(); List Probability = new List(); List VIN = new List(); DataTable VINPrefBase = new DataTable(); // Table for showing VIN, Prefix, Base, used for lateron SFIVectorList.Clear(); distances.Clear(); table.Clear(); table.Columns.Clear(); connection.Open(); Train.Enabled = false; currentSFI = textBox1.Text; OleDbCommand command = connection.CreateCommand(); string cmd = "SELECT VIN, Prefix, Base FROM ALLBOM WHERE SFI = '" + currentSFI + "'ORDER BY VIN, Prefix, Base;"; cCommand(command, cmd); OleDbDataAdapter adapter3 = new OleDbDataAdapter(command); adapter3.Fill(VINPrefBase); Refresh(); //VIN = VINPrefBase.Rows.OfType().Select(dr => (string)dr["VIN"]).ToList(); List SFIInOne = new List(); VIN = VINPrefBase.Rows.OfType().Select(dr => (string)dr["VIN"]).Distinct().ToList(); //VIN-Table with index DataTable VINTable = new DataTable(); VINTable.Columns.Add("Index", typeof(int)); VINTable.Columns.Add("VIN", typeof(string)); VINCount = VIN.Count; for (int y = 1; y < VINCount + 1; y++) { VINTable.Rows.Add(y, VIN[y - 1]); } dataGridView3.DataSource = VINTable; Refresh(); label1.Text = "VIN for this SFI: " + VINCount; //Setting all SFI lists into SFIlist for (int i = 0; i < VINCount; i++) { List SFI = new List(); List SFIHelp = VINPrefBase.Rows.OfType().Where(x => x.Field("VIN") == VIN[i]).Select(dr => (string)dr["Prefix"]).ToList(); List SFIHelp2 = VINPrefBase.Rows.OfType().Where(x => x.Field("VIN") == VIN[i]).Select(dr => (string)dr["Base"]).ToList(); string part; for (int a = 0; a < SFIHelp2.Count; a++) { part = SFIHelp[a] + SFIHelp2[a]; SFI.Add(part); } SFIHelp.Clear(); SFIHelp2.Clear(); SFIList.Add(new List()); foreach (string a in SFI) { SFIList[i].Add(a); SFIInOne.Add(a); } } List distinctSFI = new List(); distinctSFI = SFIInOne.AsEnumerable().Distinct().ToList(); distinct = distinctSFI.Count;int d = 0; //Comparing all SFI lists with each other, indistinct lists are marked for (int v = 0; v < SFIList.Count - 1; v++) { if (SFIList[v][0] != "000") { SFIIndex.Add(new List()); int b = v + 1; SFIIndex[d].Add(b.ToString()); for (int g = v + 1; g < SFIList.Count; g++) { if (SFIList[g][0] != "000") { bool a = false; CompareWholeSFI(SFIList[v], SFIList[g], ref a); if (a == true) { int c = g + 1; SFIIndex[d].Add(c.ToString()); } } } d++; } } //Getting all distinct SFI lists int z = 0; for (int v = 0; v < SFIList.Count; v++) { if (SFIList[v][0] != "000") { distinctSFIList.Add(new List()); for (int a = 0; a < SFIList[v].Count; a++) { distinctSFIList[z].Add(SFIList[v][a]); } z++; } } int[][] SFIVectorArray = new int[distinctSFIList.Count][]; BoW(distinctSFIList, distinctSFI, SFIVectorArray); DataTable dt = new DataTable(); dt.Clear(); dt.Columns.Clear(); dt.Columns.Add("Index", typeof(string)); dt.Columns.Add("Probability", typeof(string)); for (int a = 0; a < distinct; a++) { int b = a + 1; dt.Columns.Add(b.ToString(), typeof(string)); } dt.Columns.Add("Appears in", typeof(string)); distinctSFI.Insert(0, "0"); distinctSFI.Insert(1, "1"); distinctSFI.Add("0"); dt.Rows.Add(distinctSFI.ToArray()); for (int a = 0; a < distinctSFIList.Count; a++) { List SFIVectorList = new List(); SFIVectorList.Add((a + 1).ToString()); SFIVectorList.Add(((double)SFIIndex[a].Count / VINCount).ToString()); for(int b = 0; b < SFIVectorArray[a].Length; b++) { SFIVectorList.Add(SFIVectorArray[a][b].ToString()); } string[] SFIs = SFIIndex[a].ToArray(); string SFIindex = String.Join(" ", SFIs); SFIVectorList.Add(SFIindex); dt.Rows.Add(SFIVectorList.ToArray()); } dataGridView1.DataSource = dt; string difference = ""; string[][] differences = new string[distinctSFIList.Count][]; for (int a = 0; a < SFIVectorArray.Length; a++) { int c = 1; int l = a + 1; differences[a] = new string[distinctSFIList.Count + 1]; differences[a][0] = "SFI " + l; for (int b = 1; b < a + 2; b++) { differences[a][b] = " "; c++; } for (int b = a + 1; b < SFIVectorArray.Length; b++) { kNN1(ref SFIVectorArray[b], ref SFIVectorArray[a], ref distinct, ref difference); differences[a][c] = difference; c++; } } table.Columns.Add(" ", typeof(string)); for (int a = 0; a < SFIVectorArray.Length; a++) { int b = a + 1; table.Columns.Add("SFI" + b, typeof(string)); } for (int a = 0; a < SFIVectorArray.Length; a++) { table.Rows.Add(differences[a]); } dataGridView2.DataSource = table; // Turning SFIVectorArray to list in SFIVectorList for (int a = 0; a < SFIVectorArray.Length; a++) { SFIVectorList.Add(new List()); SFIVectorList[a] = SFIVectorArray[a].ToList(); } Train.Enabled = true; connection.Close(); } private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) { var senderGrid = (DataGridView)sender; if (senderGrid.Columns[e.ColumnIndex] is DataGridViewButtonColumn && e.RowIndex == 0) { dataGridView2.DataSource = table; } if (senderGrid.Columns[e.ColumnIndex] is DataGridViewButtonColumn && e.RowIndex >= 1 && e.RowIndex <= SFIVectorList.Count) { DataTable dist = new DataTable(); dist.Columns.Add("Euclidic distance", typeof(string)); distances.Add("SFI " + e.RowIndex); for (int a = 0; a < SFIVectorList.Count; a++) { if(a == e.RowIndex - 1) { continue; } distances.Add( kNN( SFIVectorList[a].ToArray(), SFIVectorList[e.RowIndex - 1].ToArray(), ref distinct)); dist.Columns.Add("SFI " + (a + 1).ToString(), typeof(string)); } dist.Rows.Add(distances.ToArray()); dataGridView2.DataSource = dist; distances.Clear(); } } } } using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Data.OleDb; using System.Globalization; namespace kNN1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); DataGridViewButtonColumn bnCol = new DataGridViewButtonColumn(); bnCol.Text = "here"; bnCol.UseColumnTextForButtonValue = true; dataGridView1.Columns.Add(bnCol); } OleDbConnection connection = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\bittlars\Desktop\kNN1\kNN1\AllBOM.accdb"); List> SFIVectorList = new List>(); List distances = new List(); int distinct, VINCount; string currentSFI; DataTable table = new DataTable(); void cCommand(OleDbCommand Command, string command) { Command.CommandType = CommandType.Text; Command.CommandText = command; Command.ExecuteNonQuery(); } void kNN1(ref int[] vector1, ref int[] vector0, ref int distinct, ref string difference) { List sum = new List(); for (int a = 0; a < vector0.Length; a++) { if (vector1[a] - vector0[a] != 0) { sum.Add(a + 1); } } difference = String.Join(" ", sum); } string kNN(int[] vector1, int[] vector0, ref int distinct) { int sum1 = 0; for (int a = 0; a < vector0.Length; a++) { sum1 += ((vector1[a] - vector0[a]) * (vector1[a] - vector0[a])); } double distance = Math.Sqrt((double)sum1); return distance.ToString(); } void BoW(List> SFIList, List distinctSFI, int[][] SFIVectorArray) { for (int a = 0; a < SFIList.Count; a++) { SFIVectorArray[a] = new int[distinct]; for (int c = 0; c < distinctSFI.Count; c++) { SFIVectorArray[a][c] = 0; } for (int b = 0; b < SFIList[a].Count; b++) { for (int c = 0; c < distinctSFI.Count; c++) { if (SFIList[a][b].Equals(distinctSFI[c])) { SFIVectorArray[a][c]++; break; } } } } } void CompareWholeSFI(List basic, List comparer, ref bool a) { //Compare whole strings a = basic.All(comparer.Contains) && basic.Count == comparer.Count; if (a == true) { //marking the comparer comparer[0] = "000"; } else { } } private void dataGridView3_CellContentClick(object sender, DataGridViewCellEventArgs e) { } private void dataGridView2_CellContentClick(object sender, DataGridViewCellEventArgs e) { } private void label1_Click(object sender, EventArgs e) { } private void textBox1_TextChanged(object sender, EventArgs e) { } private void Form1_Load(object sender, EventArgs e) { } private void Train_Click(object sender, EventArgs e) { List> SFIList = new List>(); List> distinctSFIList = new List>(); List> SFIIndex = new List>(); List Probability = new List(); List VIN = new List(); DataTable VINPrefBase = new DataTable(); // Table for showing VIN, Prefix, Base, used for lateron SFIVectorList.Clear(); distances.Clear(); table.Clear(); table.Columns.Clear(); connection.Open(); Train.Enabled = false; currentSFI = textBox1.Text; OleDbCommand command = connection.CreateCommand(); string cmd = "SELECT VIN, Prefix, Base FROM ALLBOM WHERE SFI = '" + currentSFI + "'ORDER BY VIN, Prefix, Base;"; cCommand(command, cmd); OleDbDataAdapter adapter3 = new OleDbDataAdapter(command); adapter3.Fill(VINPrefBase); Refresh(); //VIN = VINPrefBase.Rows.OfType().Select(dr => (string)dr["VIN"]).ToList(); List SFIInOne = new List(); VIN = VINPrefBase.Rows.OfType().Select(dr => (string)dr["VIN"]).Distinct().ToList(); //VIN-Table with index DataTable VINTable = new DataTable(); VINTable.Columns.Add("Index", typeof(int)); VINTable.Columns.Add("VIN", typeof(string)); VINCount = VIN.Count; for (int y = 1; y < VINCount + 1; y++) { VINTable.Rows.Add(y, VIN[y - 1]); } dataGridView3.DataSource = VINTable; Refresh(); label1.Text = "VIN for this SFI: " + VINCount; //Setting all SFI lists into SFIlist for (int i = 0; i < VINCount; i++) { List SFI = new List(); List SFIHelp = VINPrefBase.Rows.OfType().Where(x => x.Field("VIN") == VIN[i]).Select(dr => (string)dr["Prefix"]).ToList(); List SFIHelp2 = VINPrefBase.Rows.OfType().Where(x => x.Field("VIN") == VIN[i]).Select(dr => (string)dr["Base"]).ToList(); string part; for (int a = 0; a < SFIHelp2.Count; a++) { part = SFIHelp[a] + SFIHelp2[a]; SFI.Add(part); } SFIHelp.Clear(); SFIHelp2.Clear(); SFIList.Add(new List()); foreach (string a in SFI) { SFIList[i].Add(a); SFIInOne.Add(a); } } List distinctSFI = new List(); distinctSFI = SFIInOne.AsEnumerable().Distinct().ToList(); distinct = distinctSFI.Count;int d = 0; //Comparing all SFI lists with each other, indistinct lists are marked for (int v = 0; v < SFIList.Count - 1; v++) { if (SFIList[v][0] != "000") { SFIIndex.Add(new List()); int b = v + 1; SFIIndex[d].Add(b.ToString()); for (int g = v + 1; g < SFIList.Count; g++) { if (SFIList[g][0] != "000") { bool a = false; CompareWholeSFI(SFIList[v], SFIList[g], ref a); if (a == true) { int c = g + 1; SFIIndex[d].Add(c.ToString()); } } } d++; } } //Getting all distinct SFI lists int z = 0; for (int v = 0; v < SFIList.Count; v++) { if (SFIList[v][0] != "000") { distinctSFIList.Add(new List()); for (int a = 0; a < SFIList[v].Count; a++) { distinctSFIList[z].Add(SFIList[v][a]); } z++; } } int[][] SFIVectorArray = new int[distinctSFIList.Count][]; BoW(distinctSFIList, distinctSFI, SFIVectorArray); DataTable dt = new DataTable(); dt.Clear(); dt.Columns.Clear(); dt.Columns.Add("Index", typeof(string)); dt.Columns.Add("Probability", typeof(string)); for (int a = 0; a < distinct; a++) { int b = a + 1; dt.Columns.Add(b.ToString(), typeof(string)); } dt.Columns.Add("Appears in", typeof(string)); distinctSFI.Insert(0, "0"); distinctSFI.Insert(1, "1"); distinctSFI.Add("0"); dt.Rows.Add(distinctSFI.ToArray()); for (int a = 0; a < distinctSFIList.Count; a++) { List SFIVectorList = new List(); SFIVectorList.Add((a + 1).ToString()); SFIVectorList.Add(((double)SFIIndex[a].Count / VINCount).ToString()); for(int b = 0; b < SFIVectorArray[a].Length; b++) { SFIVectorList.Add(SFIVectorArray[a][b].ToString()); } string[] SFIs = SFIIndex[a].ToArray(); string SFIindex = String.Join(" ", SFIs); SFIVectorList.Add(SFIindex); dt.Rows.Add(SFIVectorList.ToArray()); } dataGridView1.DataSource = dt; string difference = ""; string[][] differences = new string[distinctSFIList.Count][]; for (int a = 0; a < SFIVectorArray.Length; a++) { int c = 1; int l = a + 1; differences[a] = new string[distinctSFIList.Count + 1]; differences[a][0] = "SFI " + l; for (int b = 1; b < a + 2; b++) { differences[a][b] = " "; c++; } for (int b = a + 1; b < SFIVectorArray.Length; b++) { kNN1(ref SFIVectorArray[b], ref SFIVectorArray[a], ref distinct, ref difference); differences[a][c] = difference; c++; } } table.Columns.Add(" ", typeof(string)); for (int a = 0; a < SFIVectorArray.Length; a++) { int b = a + 1; table.Columns.Add("SFI" + b, typeof(string)); } for (int a = 0; a < SFIVectorArray.Length; a++) { table.Rows.Add(differences[a]); } dataGridView2.DataSource = table; // Turning SFIVectorArray to list in SFIVectorList for (int a = 0; a < SFIVectorArray.Length; a++) { SFIVectorList.Add(new List()); SFIVectorList[a] = SFIVectorArray[a].ToList(); } Train.Enabled = true; connection.Close(); } private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) { var senderGrid = (DataGridView)sender; if (senderGrid.Columns[e.ColumnIndex] is DataGridViewButtonColumn && e.RowIndex == 0) { dataGridView2.DataSource = table; } if (senderGrid.Columns[e.ColumnIndex] is DataGridViewButtonColumn && e.RowIndex >= 1 && e.RowIndex <= SFIVectorList.Count) { DataTable dist = new DataTable(); dist.Columns.Add("Euclidic distance", typeof(string)); distances.Add("SFI " + e.RowIndex); for (int a = 0; a < SFIVectorList.Count; a++) { if(a == e.RowIndex - 1) { continue; } distances.Add( kNN( SFIVectorList[a].ToArray(), SFIVectorList[e.RowIndex - 1].ToArray(), ref distinct)); dist.Columns.Add("SFI " + (a + 1).ToString(), typeof(string)); } dist.Rows.Add(distances.ToArray()); dataGridView2.DataSource = dist; distances.Clear(); } } } } #### END MAIN PROGRAM #### #### C# DESIGN VIEW FOR USER INTERFACE #### namespace kNN1 { partial class Form1 { /// /// Erforderliche Designervariable. /// private System.ComponentModel.IContainer components = null; /// /// Verwendete Ressourcen bereinigen. /// /// True, wenn verwaltete Ressourcen gelöscht werden sollen; andernfalls False. protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Vom Windows Form-Designer generierter Code /// /// Erforderliche Methode für die Designerunterstützung. /// Der Inhalt der Methode darf nicht mit dem Code-Editor geändert werden. /// private void InitializeComponent() { this.Train = new System.Windows.Forms.Button(); this.dataGridView1 = new System.Windows.Forms.DataGridView(); this.dataGridView2 = new System.Windows.Forms.DataGridView(); this.dataGridView3 = new System.Windows.Forms.DataGridView(); this.label1 = new System.Windows.Forms.Label(); this.textBox1 = new System.Windows.Forms.TextBox(); ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.dataGridView2)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.dataGridView3)).BeginInit(); this.SuspendLayout(); // // Train // this.Train.BackColor = System.Drawing.SystemColors.ActiveCaptionText; this.Train.ForeColor = System.Drawing.SystemColors.ButtonHighlight; this.Train.Location = new System.Drawing.Point(139, 61); this.Train.Name = "Train"; this.Train.Size = new System.Drawing.Size(75, 23); this.Train.TabIndex = 1; this.Train.Text = "Train"; this.Train.UseVisualStyleBackColor = false; this.Train.Click += new System.EventHandler(this.Train_Click); // // dataGridView1 // this.dataGridView1.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.AllCells; this.dataGridView1.AutoSizeRowsMode = System.Windows.Forms.DataGridViewAutoSizeRowsMode.AllCells; this.dataGridView1.BackgroundColor = System.Drawing.SystemColors.ButtonHighlight; this.dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; this.dataGridView1.Location = new System.Drawing.Point(12, 289); this.dataGridView1.Name = "dataGridView1"; this.dataGridView1.RowHeadersVisible = false; this.dataGridView1.Size = new System.Drawing.Size(776, 149); this.dataGridView1.TabIndex = 2; this.dataGridView1.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dataGridView1_CellContentClick); // // dataGridView2 // this.dataGridView2.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.AllCells; this.dataGridView2.AutoSizeRowsMode = System.Windows.Forms.DataGridViewAutoSizeRowsMode.AllCells; this.dataGridView2.BackgroundColor = System.Drawing.SystemColors.ButtonHighlight; this.dataGridView2.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; this.dataGridView2.Location = new System.Drawing.Point(481, 12); this.dataGridView2.Name = "dataGridView2"; this.dataGridView2.RowHeadersVisible = false; this.dataGridView2.Size = new System.Drawing.Size(307, 215); this.dataGridView2.TabIndex = 3; this.dataGridView2.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dataGridView2_CellContentClick); // // dataGridView3 // this.dataGridView3.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.AllCells; this.dataGridView3.AutoSizeRowsMode = System.Windows.Forms.DataGridViewAutoSizeRowsMode.AllCells; this.dataGridView3.BackgroundColor = System.Drawing.SystemColors.ButtonHighlight; this.dataGridView3.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; this.dataGridView3.Location = new System.Drawing.Point(229, 12); this.dataGridView3.Name = "dataGridView3"; this.dataGridView3.RowHeadersVisible = false; this.dataGridView3.Size = new System.Drawing.Size(138, 271); this.dataGridView3.TabIndex = 4; this.dataGridView3.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dataGridView3_CellContentClick); // // label1 // this.label1.AutoSize = true; this.label1.Location = new System.Drawing.Point(30, 138); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(35, 13); this.label1.TabIndex = 5; this.label1.Text = "label1"; this.label1.Click += new System.EventHandler(this.label1_Click); // // textBox1 // this.textBox1.Location = new System.Drawing.Point(33, 63); this.textBox1.Name = "textBox1"; this.textBox1.Size = new System.Drawing.Size(100, 20); this.textBox1.TabIndex = 0; this.textBox1.TextChanged += new System.EventHandler(this.textBox1_TextChanged); // // Form1 // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.BackColor = System.Drawing.SystemColors.ActiveCaption; this.ClientSize = new System.Drawing.Size(800, 450); this.Controls.Add(this.textBox1); this.Controls.Add(this.label1); this.Controls.Add(this.dataGridView3); this.Controls.Add(this.dataGridView2); this.Controls.Add(this.dataGridView1); this.Controls.Add(this.Train); this.Name = "Form1"; this.Text = "Form1"; this.Load += new System.EventHandler(this.Form1_Load); ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.dataGridView2)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.dataGridView3)).EndInit(); this.ResumeLayout(false); this.PerformLayout(); } #endregion private System.Windows.Forms.Button Train; private System.Windows.Forms.DataGridView dataGridView1; private System.Windows.Forms.DataGridView dataGridView2; private System.Windows.Forms.DataGridView dataGridView3; private System.Windows.Forms.Label label1; private System.Windows.Forms.TextBox textBox1; } } #### END DESIGN VIEW ####