C# 生成动态控件的问题

Button btn1 = new Button();
Form1.Controls.Add(btn1);
报错,要求对象引用、然后把Form1换成this 就行了,这是为什么啊

Form1是类,this是对象实例。用类名只能调用静态方法,不能调用实例方法。
估计你是从VB6的开发中转过来的,VB中,为了简化代码,允许通过窗口类名来访问当前窗口实例,编译器会自动处理,不过C#没有这样的功能。

WinForm中,我们想在窗体Form1中动态生成一个位于窗体中间的Button,可以这样做

Button dyBtn = new Button();
//设置文本
dyBtn.Text = "动态生成的Button";
//改变按钮的长和宽
dyBtn.Size = new Size(150,25);
//改变按钮的位置 这里是置于窗体中间
dyBtn.Location = n......
答案就在这里:C#动态生成控件
----------------------Hi,地球人,我是问答机器人小S,上面的内容就是我狂拽酷炫叼炸天的答案,除了赞同,你还有别的选择吗?