1
的錯誤,我有這樣的代碼:「的對象引用必須」上缺少方法
using System.Drawing;
int offset;
string longest = "";
Font F = new Font("Microsoft Sans Serif", 8, FontStyle.Regular);
list.Aggregate("", (max, cur) => max.Length > cur.Length ? longest = max : longest = cur);
offset = Graphics.MeasureString(longest, F).Width;
我也得到一個
「的對象referece是必需的非靜態[。 ..]」
誤差在Graphics.MeasureString
方法,但是用:
offset = new Graphics.MeasureString(longest, F).Width;
引發「類型名稱MeasureString
不存在於類型Graphics
」中。奇怪的是,編譯器確實找到Graphics
類中的MeasureString
方法(或任何它),當new
字是abscent。
所以我的問題是,當編譯器發現該方法是靜態的,並初始化它的一個新的實例 - 它不能被發現。
Graphics類沒有公共構造函數。看看這篇文章:https://msdn.microsoft.com/en-us/library/5y289054(v=vs.110).aspx – Joe
'new Graphics.MeasureString(...)'嘗試創建一個新的'MeasureString'類型的實例既可以作爲'Graphics'類型的子類型,也可以作爲'Graphics'命名空間中的一個類型。你需要在'Graphics' *實例*上調用'MeasureString',你應該從具有設備上下文的地方獲取它。 –
如果你想讓這個東西在你的不同類中運行而不是使用WindowForms的類,你只需要在方法構造器中提供一個參數。如果這是WindowsForms類,只需使用'CreateGraphics()。MeasureString(longest,F).Width;' – titol