我是新来的C#和使用窗体,所以原谅我,如果我不明白这应该如何工作。C#:无法访问私有方法中的公共方法
我想在窗体中创建一个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,如果它是一个“类型”时,这是一个“场”。
您的“ClassCol”在代码的第一个Form1()块中“死亡”。采用公开的方法并不能让你“公开”地访问它。 – bardao
在您的代码中ClassCol是本地的,而不是公共变量 – Disappointed
也许先回到基础知识,并阅读“变量范围”和C#类的一般结构(例如,可以声明去,实际代码去哪里)等等。看到你的编辑,你似乎被误解了你需要理解代码的基础知识。这并不意味着粗鲁,但只是一个建议让它慢一点。 – Jens