Winforms MessageBox不显示所有字符

Winforms MessageBox不显示所有字符,winforms,messagebox,Winforms,Messagebox,图1 图2 字体是我的系统字体。。。 怎么办? 编辑:在字符串末尾添加6个空格解决了问题,WTF。使用我的心理猜测能力,我认为字体度量系统中存在缺陷。它没有正确地测量字符串,因此认为它在消息框中为字符串分配了足够的水平空间,即使它没有。这就是为什么在字符串中填充空格(它会为它们保留空间,然后用于渲染“真实”字符串)时它会起作用的原因。我将通过将系统字体更改为更标准的字体(即随附的任何字体)来确认这一点 我猜您正在使用Mono,所以这可能是一个bug,或者可能是您的窗口管理器中的bug。系统上的

图1

图2

字体是我的系统字体。。。 怎么办?


编辑:在字符串末尾添加6个空格解决了问题,WTF。

使用我的心理猜测能力,我认为字体度量系统中存在缺陷。它没有正确地测量字符串,因此认为它在消息框中为字符串分配了足够的水平空间,即使它没有。这就是为什么在字符串中填充空格(它会为它们保留空间,然后用于渲染“真实”字符串)时它会起作用的原因。我将通过将系统字体更改为更标准的字体(即随附的任何字体)来确认这一点


我猜您正在使用Mono,所以这可能是一个bug,或者可能是您的窗口管理器中的bug。系统上的其他应用程序是否有截断的警报视图或对话框项?如果是这样,那就是一个WM错误。如果不是,很可能是单声道错误。

您能显示解决问题的代码吗?请将您的代码添加为代码而不是图像。保留消息框的屏幕截图,因为它们解释了您的问题。消息框中使用的字体似乎比默认字体宽。我猜长度计算是基于默认字体的——因此是truncation.Yup。这就是开源的好处,你可以自己修复bug。