I'm new to C# and using Forms, so forgive me if I'm not understanding how this is supposed to work.
I'm trying to create a LayoutTablePanel in a Form to eventually display some data.
In Visual Studio, I know I can drag and drop a LayoutTablePanel into the Form Designer to visually see the table get added, but to make it easier to add/edit tables, I'd like to do it from with the public Form1() level like so:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
TableLayoutPanel ClassCol = new TableLayoutPanel();
ClassCol.Location = new System.Drawing.Point(0, 20);
ClassCol.Name = "ClassCol";
ClassCol.Size = new System.Drawing.Size(79, 400); //add a changing variable here later.
ClassCol.TabIndex = 0;
ClassCol.CellBorderStyle = TableLayoutPanelCellBorderStyle.Single;
Controls.Add(ClassCol);
}
private void toolStripLabel1_Click(object sender, EventArgs e)
{
}
}
Now, this initializes the TableLayoutPanel at runtime, which is what I want, but I'd like to modify (dynamically add rows) later on by clicking certain buttons. In this case, by clicking on toolStripLabel1_Click method; however, when typing in Class.Col within the private method there, it doesn't seem to have access to the iteration of the TableLayoutPanel instance I created. If someone could help me fix this, it'd be appreciated. Thanks.
Edit: If I adjust the code like so:
public partial class Form1 : Form
{
TableLayoutPanel ClassCol = new TableLayoutPanel();
ClassCol.Location = new System.Drawing.Point(0, 20);
ClassCol.Name = "ClassCol";
ClassCol.Size = new System.Drawing.Size(79, 400); //add a changing variable here later.
ClassCol.TabIndex = 0;
ClassCol.CellBorderStyle = TableLayoutPanelCellBorderStyle.Single;
Controls.Add(ClassCol);
public Form1()
{
InitializeComponent();
}
private void toolStripLabel1_Click(object sender, EventArgs e)
{
}
}
It says I'm using Form1.ClassCol as if it's a "type" when it's a "field".
You need to move this line:
Above this line:
You are declaring it locally inside your
Form1()constructor, so no other method will be able to access it. You need to declare it at class level instead of method level.