我是C#的新手并使用Forms,所以请原谅我,如果我不理解这应该如何工作。
我正在尝试在表单中创建一个LayoutTablePanel,以最终显示一些数据。
在Visual Studio中,我知道我可以将LayoutTablePanel拖放到表单设计器中,直观地看到表格被添加,但是为了更容易添加/编辑表格,我想从公众那里做到这一点。 Form1()级别如此:
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)
{
}
}
现在,这会在运行时初始化TableLayoutPanel,这是我想要的,但我想稍后通过单击某些按钮来修改(动态添加行)。在这种情况下,通过单击toolStripLabel1_Click方法;但是,当在私有方法中键入Class.Col时,它似乎无法访问我创建的TableLayoutPanel实例的迭代。如果有人可以帮我解决这个问题,我们将不胜感激。感谢。
编辑:如果我像这样调整代码:
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)
{
}
}
它说我正在使用Form1.ClassCol,就好像它是一个“类型”,当它是一个“字段”时。
答案 0 :(得分:1)
你需要移动这一行:
TableLayoutPanel ClassCol = new TableLayoutPanel();
在这一行之上:
public Form1()
您在Form1()
构造函数中本地声明它,因此没有其他方法可以访问它。您需要在类级别而不是方法级别声明它。