在此范围内,
namespace Project1
{
public partial class Form1 : Form
{
public Form1()
{
//Change Form1 properties here
}
}
}
如果通过
更改属性 DoubleBufferedProject1.Form1.DoubleBuffered = false;
或
Form1.DoubleBuffered = false;
然后发生错误
非静态字段,方法或属性'System.Windows.Forms.Control.DoubleBuffered.get'
需要对象引用
但是,如果通过
进行更改this.DoubleBuffered = false;
然后错误已解决。我老鼠徘徊 this ,它显示
class Project1.Form1
有人可以解释为什么'this'关键字代表Project1.Form1,但如果我用Project1.Form1或Form1替换'this',我会有错误吗?感谢
答案 0 :(得分:1)
在您的情况下,this
关键字引用Form1
的当前实例。明确提及Form1
表示您将Form1
称为类名。
未声明为static
的所有属性都与类的实例相关联,而不是它自己的类。因此,您只能从类实例访问该属性。
这种行为是有道理的,因为你可以拥有多个Form1
个实例,每个实例都可以有不同的DoubleBuffered
属性值:
var instance1 = new Form1();
var instance2 = new Form1();
instance1.DoubleBuffered = true;
instance2.DoubleBuffered = false;