System.Drawing中参考

问题描述:

我想设置这样一个文本框的背景色:System.Drawing中参考

txtCompanyName.BackColor = Drawing.Color.WhiteSmoke; 

,因为它要我在前面像添加系统它不喜欢它:

txtCompanyName.BackColor = System.Drawing.Color.WhiteSmoke; 

现在,它的工作,但它激怒了我,我必须键入系统。我使用System在我的代码顶部引用了System;不应该这样做,所以我不必在绘图前键入系统,不知道为什么我仍然需要键入系统,任何人都知道?

+0

可能的重复:http://*.com/questions/9433012/why-cant-i-write-io-directory-getfiles – nawfal 2012-03-13 19:45:18

在C#中,您不能通过部分名称空间指定类型名称。 C#中的名称必须是

  • 一个完全包括整个命名空间或命名空间别名
  • 类型名只

Drawing.Color.WhiteSmokeDrawing部分是一个非完全合格的名称空间和限定名因此作为类型名称是非法的。你要么需要添加前缀System或添加using System.Drawing并更改类型名称Color.WhiteSmoke

另外,您可以创建名为DrawingSystem.Drawing命名空间的别名。

using Drawing = System.Drawing; 

在C#中使用别名作为类型名称的开头是合法的。

+0

感谢您的解释.... – user1202606 2012-03-13 19:08:26

您正在使用系统,但您没有使用System.Drawing。将using System.Drawing;添加到其他使用语句中。

+0

这不是问题在这里。在C#中,您不能使用以部分名称空间开头的名称。 – JaredPar 2012-03-13 18:37:26

容易地固定:

using Drawing = System.Drawing; 

... 

txtCompanyName.BackColor = Drawing.Color.WhiteSmoke; 

using语句是进口是在指定的命名空间中的类型;这不包括子名称空间。

如果你真的想,你可以使用下面一行:

using Drawing = System.Drawing; 

这将让你参考System.Drawing命名空间为“图纸”。这可能不是最好的解决方案。真的,你应该只使用:

using System.Drawing; 

你行就变成了:

txtCompanyName.BackColor = Color.WhiteSmoke; 

,如果你需要的System.Drawing.Color和一些其他的颜色类之间的歧义(如Microsoft.Xna.Framework.Color ),你可以使用线路是这样的:

using XNAColor = Microsoft.Xna.Framework.Color; 
using WinColor = System.Drawing.Color; 

那么你的路线是:

txtCompanyName.BackColor = WinColor.WhiteSmoke;