2012-03-13 85 views
3

我想設置這樣一個文本框的背景色:System.Drawing中參考

txtCompanyName.BackColor = Drawing.Color.WhiteSmoke; 

,因爲它要我在前面像添加系統它不喜歡它:

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

現在,它的工作,但它激怒了我,我必須鍵入系統。我使用System在我的代碼頂部引用了System;不應該這樣做,所以我不必在繪圖前鍵入系統,不知道爲什麼我仍然需要鍵入系統,任何人都知道?

+0

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

回答

5

在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

0

您正在使用系統,但您沒有使用System.Drawing。將using System.Drawing;添加到其他使用語句中。

+0

這不是問題在這裏。在C#中,您不能使用以部分名稱空間開頭的名稱。 – JaredPar 2012-03-13 18:37:26

1

容易地固定:

using Drawing = System.Drawing; 

... 

txtCompanyName.BackColor = Drawing.Color.WhiteSmoke; 
1

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;