我是C#的新手,有问题。
我创建了一个名为All_Buttons的类,并在其中创建了一个名为create_button1()的方法。
此方法创建一个名为b1的按钮。在该方法的最后,我添加了Controls.Add(b1)。
在类内部,Controls.Add(b1)出现错误,但在类外部使用相同的方法可以正常工作。
有人知道如何解决这个问题吗?
下面是代码,但由于某种原因,只有最后一个方法显示了应有的方式。
namespace WindowsFormsApp8
{
public partial class Form1 : Form
{
class All_Buttons
{
void create_button1()
{
Button b1 = new Button();
b1.Size = new Size(50, 50);
b1.Location = new Point(10, 10);
b1.Visible = true;
b1.Text = "Button1";
//Does not work//
Control.Add(b1);
}
}
void create_button1()
{
Button b1 = new Button();
b1.Size = new Size(50, 50);
b1.Location = new Point(10, 10);
b1.Visible = true;
b1.Text = "Button1";
//This works//
Control.Add(b1);
}
答案 0 :(得分:2)
您不能从嵌套类中访问Control
。您需要例如通过ctor或Form1
的参数将All_Buttons
实例传递给create_button1
类,以便能够访问它。
class All_Buttons
{
void create_button1(Form1 form)
{
Button b1 = new Button();
b1.Size = new Size(50, 50);
b1.Location = new Point(10, 10);
b1.Visible = true;
b1.Text = "Button1";
form.Controls.Add(b1);
}
}
但是在这种情况下,我建议您重新设计您的结构,因为似乎不需要嵌套类。