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

本文关键字:出错 错了 为什么 | 更新日期: 2023-09-27 17:59:54

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

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

如果想要stringWidth,则必须从MeasureString 返回的SizeF结构中获取Width

示例:

float startPos = e.Graphics.MeasureString(toMeasure, f).Width;
方法MeasureString返回SizeF对象。
SizeF startPos = e.Graphics.MeasureString(toMeasure, f);

正如错误所说,MeasureString函数返回一个System.Drawing.SizeF,即ordered pair of floating-point numbers