为什么我在这条线上出错?

时间:2013-02-18 02:17:36

标签: c# .net

float startPos = e.Graphics.MeasureString(toMeasure, f);
                    e.Graphics.DrawString(keyword, f, sb, new PointF(e.Bounds.X + (int)startPos, e.Bounds.Y));

这是f

using (Font f = new Font(FontFamily.GenericSansSerif, 8, FontStyle.Regular))

这是toMeasure

string toMeasure = data[e.Index].Substring(0, keywords - 1);

错误在线:

float startPos = e.Graphics.MeasureString(toMeasure, f);

错误是:

  

无法将类型'System.Drawing.SizeF'隐式转换为'float'

我该如何解决?由于第二行应该浮动,但第一行无法从SizeF转换为float

3 个答案:

答案 0 :(得分:6)

如果您想要Width的{​​{1}},则必须从string

返回的Width结构中获取SizeF

示例:

MeasureString

答案 1 :(得分:2)

方法MeasureString返回SizeF个对象。

SizeF startPos = e.Graphics.MeasureString(toMeasure, f);

答案 2 :(得分:0)

如错误所示,MeasureString函数返回System.Drawing.SizeF,这是ordered pair of floating-point numbers