C#:无法访问私有方法中的 Public 方法
C#: Unable to access Public method in a private method
我是 C# 和使用表单的新手,所以如果我不理解它应该如何工作,请原谅我。
我正在尝试在表单中创建 LayoutTablePanel 以最终显示一些数据。
在 Visual Studio 中,我知道我可以将 LayoutTablePanel 拖放到表单设计器中以直观地看到添加的 table,但为了更容易 add/edit tables,我想从 public 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 就好像它是 "type" 而实际上它是 "field".
您需要移动此行:
TableLayoutPanel ClassCol = new TableLayoutPanel();
这一行以上:
public Form1()
您在 Form1()
构造函数中本地声明它,因此没有其他方法可以访问它。您需要在 class 级别而不是方法级别声明它。
我是 C# 和使用表单的新手,所以如果我不理解它应该如何工作,请原谅我。
我正在尝试在表单中创建 LayoutTablePanel 以最终显示一些数据。
在 Visual Studio 中,我知道我可以将 LayoutTablePanel 拖放到表单设计器中以直观地看到添加的 table,但为了更容易 add/edit tables,我想从 public 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 就好像它是 "type" 而实际上它是 "field".
您需要移动此行:
TableLayoutPanel ClassCol = new TableLayoutPanel();
这一行以上:
public Form1()
您在 Form1()
构造函数中本地声明它,因此没有其他方法可以访问它。您需要在 class 级别而不是方法级别声明它。