【发布时间】:2014-09-07 01:59:09
【问题描述】:
我有一个 Windows 窗体,我需要在其中使用绘制事件放置一个标题(一个字符串)。标题应放在中心。我使用了以下代码:
string myString="Hello";
Font stringFont = new Font("Arial", 20, FontStyle.Bold);
Size textSize = TextRenderer.MeasureText(myString, stringFont);
int formWidth = (int)(ClientSize.Width - textSize.Width) / 2;
int formHeight = (int)(ClientSize.Height / 35);
e.Graphics.DrawString(measureString, stringFont, System.Drawing.Brushes.DarkBlue, formWidth, formHeight);
这对我很有效。现在,当用户拖动表单并更改客户端大小时,字符串不再位于中心。所以我寻找Windows窗体的ClientSizeChanged事件,并试图重复上面的代码。但是它没有 PaintEventArgs 对象,所以上面代码的最后一行,抛出了一个错误。
我是否以正确的方式解决了上述问题(即使clientsize.width 改变了字符串居中)?如果是这样,该怎么做,如果不是,我应该如何处理客户端大小更改事件?
【问题讨论】: