更改Windows窗体的背景色 - c#

为什么不能以这种方式更改表单的背景色?

MainForm.BackColor = System.Drawing.Color.Black;

这是我在控制台中得到的:

An object reference is required for the non-static field, method, or property 'System.Windows.Forms.Control.BackColor.get' (CS0120) 

参考方案

Static Classes是无法实例化的类。静态类具有静态方法或静态属性(或两者)。当使用这样的行时:

MainForm.BackColor = System.Drawing.Color.Black; // <class name>.<property>

C#编译器首先要做的是寻找一个名为MainForm的局部类变量。由于没有任何内容,因此它不在您的本地范围内,找到了名为Windows.FormMainForm类。

然后,它查看类MainForm是否具有称为BackColor的静态属性。编译器然后说:“哦,有一个名为BackColor的属性,但它不是静态的”,这是编译器抱怨并将您遇到的错误扔给您时。

通过将其更改为this.BackColor,编译器知道您要设置MainForm的此实例背景色,即this或默认情况下为form1

this.BackColor = System.Drawing.Color.Black; // <this instance>.<property>

另外,关键字this不是必需的。忽略它会假定“此对象”。您也可以这样做:

BackColor = System.Drawing.Color.Black; // <this instance>.<property>

希望这更有意义!

将谓词<T>转换为Func <T,bool> - c#

我有一个包含成员Predicate的类,希望在Linq表达式中使用该类:using System.Linq; class MyClass { public bool DoAllHaveSomeProperty() { return m_instrumentList.All(m_filterExpression); } private IEnumerable&…

通过Maven编译器插件不会发生有限的包含和排除 - java

我正在使用3.6.0版的maven编译器插件,在此我们只想在特定文件夹中编译一个文件,而在该位置编译所有其他文件。例如:在文件夹应用程序中有14个文件,从那我只希望编译1个文件,但它编译了所有文件,如果我要排除,则它也不起作用。 <sourceDirectory>${basedir}/../src/java</sourceDirectory…

当我所有的都是T时,如何返回Interface <T>的实例? - java

我有一个界面:public interface ILoginResult<T> { public T get(); } 我有一个LoginPage对象:public class LoginPage<T> { ... public ILoginResult<T> login(...) { ... } } 我也有一些登录页面对…

客户端反序列化为数组序列化字典<string,string>数据 - c#

我有一个字典,该字典使用C#中的JavaScriptSerializer进行了序列化。在客户端,我有:"{"dd049eda-e289-4ca2-8841-4908f94d5b65":"2","ab969ac2-320e-42e1-b759-038eb7f57178":"5�…

Java中的“ <<”运算符 - java

最喜欢的语句来自Java的Character类:(1 << Character.PARAGRAPH_SEPARATOR)) >> type PARAGRAPH_SEPARATOR是字节,type是整数。这句话中的操作员,他们做什么?如何以及在哪里可以使用这些运算符?这是oracles java.lang.Character文档。该类中…