private void tabControl1_SelectedIndexChanged(object sender, EventArgs e) { if (tabControl1.SelectedTab == tabStatus) { tabControl1.SuspendLayout(); foreach (Control temp in tabStatus.Controls) { temp.DataBindings.Clear(); //temp.Dispose(); } //tabStatus.Controls.Clear(); int x = 10; int y = 10; object thisBoxed = MainV2.cs; Type test = thisBoxed.GetType(); foreach (var field in test.GetProperties()) { // field.Name has the field's name. object fieldValue; try { fieldValue = field.GetValue(thisBoxed, null); // Get value } catch { continue; } // Get the TypeCode enumeration. Multiple types get mapped to a common typecode. TypeCode typeCode = Type.GetTypeCode(fieldValue.GetType()); bool add = true; MyLabel lbl1 = new MyLabel(); MyLabel lbl2 = new MyLabel(); try { lbl1 = (MyLabel)tabStatus.Controls.Find(field.Name, false)[0]; lbl2 = (MyLabel)tabStatus.Controls.Find(field.Name + "value", false)[0]; add = false; } catch { } lbl1.Location = new Point(x, y); lbl1.Size = new System.Drawing.Size(75, 13); lbl1.Text = field.Name; lbl1.Name = field.Name; lbl2.AutoSize = false; lbl2.Location = new Point(lbl1.Right + 5, y); lbl2.Size = new System.Drawing.Size(50, 13); //if (lbl2.Name == "") lbl2.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.bindingSource1, field.Name, true, System.Windows.Forms.DataSourceUpdateMode.OnValidation, "")); lbl2.Name = field.Name + "value"; //lbl2.Text = fieldValue.ToString(); if (add) { tabStatus.Controls.Add(lbl1); tabStatus.Controls.Add(lbl2); } //Application.DoEvents(); x += 0; y += 15; if (y > tabStatus.Height - 30) { x += 140; y = 10; } } tabStatus.Width = x; tabControl1.ResumeLayout(); } else { foreach (Control temp in tabStatus.Controls) { temp.DataBindings.Clear(); } } }
void tabStatus_Resize(object sender, EventArgs e) { // localise it //Control tabStatus = sender as Control; // tabStatus.SuspendLayout(); //foreach (Control temp in tabStatus.Controls) { // temp.DataBindings.Clear(); //temp.Dispose(); } //tabStatus.Controls.Clear(); int x = 10; int y = 10; object thisBoxed = MainV2.comPort.MAV.cs; Type test = thisBoxed.GetType(); PropertyInfo[] props = test.GetProperties(); int fixmesort; //props foreach (var field in props) { // field.Name has the field's name. object fieldValue; try { fieldValue = field.GetValue(thisBoxed, null); // Get value } catch { continue; } // Get the TypeCode enumeration. Multiple types get mapped to a common typecode. TypeCode typeCode = Type.GetTypeCode(fieldValue.GetType()); bool add = true; MyLabel lbl1 = new MyLabel(); MyLabel lbl2 = new MyLabel(); try { lbl1 = (MyLabel)tabStatus.Controls.Find(field.Name, false)[0]; lbl2 = (MyLabel)tabStatus.Controls.Find(field.Name + "value", false)[0]; add = false; } catch { } if (add) { lbl1.Location = new Point(x, y); lbl1.Size = new System.Drawing.Size(75, 13); lbl1.Text = field.Name; lbl1.Name = field.Name; lbl1.Visible = true; lbl2.AutoSize = false; lbl2.Location = new Point(lbl1.Right + 5, y); lbl2.Size = new System.Drawing.Size(50, 13); //if (lbl2.Name == "") lbl2.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.bindingSource1, field.Name, false, System.Windows.Forms.DataSourceUpdateMode.OnValidation, "0")); lbl2.Name = field.Name + "value"; lbl2.Visible = true; //lbl2.Text = fieldValue.ToString(); tabStatus.Controls.Add(lbl1); tabStatus.Controls.Add(lbl2); } else { lbl1.Location = new Point(x, y); lbl2.Location = new Point(lbl1.Right + 5, y); } //Application.DoEvents(); x += 0; y += 15; if (y > tabStatus.Height - 30) { x += 140; y = 10; } } tabStatus.Width = x; ThemeManager.ApplyThemeTo(tabStatus); // tabStatus.ResumeLayout(); }