system.drawing参考

3

我正在尝试设置文本框的背景颜色,如下所示:

txtCompanyName.BackColor = Drawing.Color.WhiteSmoke;

它不喜欢这样,因为它希望我在前面加上System,像这样:

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

现在这样做是可以的,但我很烦恼我必须要打System。在代码开头已经用using System;引用了System,为什么我还需要在drawing前面加上System呢?有人知道吗?


可能重复:https://dev59.com/3GDVa4cB1Zd3GeqPg9Px - nawfal
4个回答

5
在C#中,你无法通过部分命名空间来指定类型名称。在C#中,名称必须是:
- 包括整个命名空间或命名空间别名的完全限定名称; - 只有类型名称。
由于 "Drawing.Color.WhiteSmoke" 中的 "Drawing" 部分是非完全限定的命名空间,因此作为类型名称是不合法的。你可以添加前缀 "System" 或添加 "using System.Drawing" 并将类型名称更改为 "Color.WhiteSmoke"。
另外,你还可以为 "System.Drawing" 命名空间创建一个别名为 "Drawing"。
using Drawing = System.Drawing;

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


1

容易修复:

using Drawing = System.Drawing;

...

txtCompanyName.BackColor = Drawing.Color.WhiteSmoke;

1
using语句是导入指定命名空间中的类型;但这不包括子命名空间。
如果您真的想要,可以使用以下行:
using Drawing = System.Drawing;

这将允许您将System.Drawing命名空间称为“Drawing”。不过,这可能并不是最佳解决方案。您应该只使用:

using System.Drawing;

你的代码行就变成了:

txtCompanyName.BackColor = Color.WhiteSmoke;

如果你需要区分 System.Drawing.Color 和其他的 Color 类(比如 Microsoft.Xna.Framework.Color),你可以使用以下代码行:
using XNAColor = Microsoft.Xna.Framework.Color;
using WinColor = System.Drawing.Color;

那么你的代码行是:

txtCompanyName.BackColor = WinColor.WhiteSmoke;

0
你正在使用 system,但是你没有使用 System.Drawing。请在你的 using 语句中添加 using System.Drawing;

这不是问题所在。在C#中,您不能使用以部分命名空间开头的名称。 - JaredPar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接