为什么我的form1元素无法访问?

时间:2017-10-30 15:51:23

标签: c#

在我的项目中,我在表单上动态生成了很多元素,比如按钮,图片框等。

要分开代码,我将制作新课程。我在我的新课程中创建了一个form1实例,但所有元素都无法访问 - 为什么会这样?

编辑:下面是相关代码。我正在尝试在CreateParty中创建按钮,但是当我引用form1中的元素时(在本例中为gameScrollBar),我收到错误

  

由于其保护水平而无法接受

我的代码:

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
        CreateParty createparty = new CreateParty(this);
        generateIcons();
    }
}

public class CreateParty
{
    private Form1 mainForm;

    public CreateParty(Form1 form1)
    {
        mainForm = form1;
        testVoid();
    }

    public void testVoid()
    {
        Button NAButton = new Button();
        NAButton.Height = 100;
        NAButton.Width = 100;
        NAButton.Location = new Point(190, 100);
        NAButton.Text = "NA";
        mainForm.gameScrollBar.Controls.Add(NAButton);
    }
}

非常感谢任何见解。

1 个答案:

答案 0 :(得分:-1)

您已将CreateParty类中的Form1变量声明为private。更新您的代码以反映:

public partial class Form1 : Form
{
public Form1()
{
    InitializeComponent();
    CreateParty createparty = new CreateParty(this);
    generateIcons();
}


public class CreateParty
{
public Form1 mainForm;  //This line was updated

public CreateParty(Form1 form1)
{
    mainForm = form1;
    testVoid();
}

public void testVoid()
{
    Button NAButton = new Button();
    NAButton.Height = 100;
    NAButton.Width = 100;
    NAButton.Location = new Point(190, 100);
    NAButton.Text = "NA";
    mainForm.gameScrollBar.Controls.Add(NAButton);
}