在我的项目中,我在表单上动态生成了很多元素,比如按钮,图片框等。
要分开代码,我将制作新课程。我在我的新课程中创建了一个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);
}
}
非常感谢任何见解。
答案 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);
}