C#:无法在私有方法中访问Public方法

时间:2015-06-26 22:00:00

标签: c# methods private public

我是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,就好像它是一个“类型”,当它是一个“字段”时。

1 个答案:

答案 0 :(得分:1)

你需要移动这一行:

TableLayoutPanel ClassCol = new TableLayoutPanel();

在这一行之上:

public Form1()

您在Form1()构造函数中本地声明它,因此没有其他方法可以访问它。您需要在类级别而不是方法级别声明它。