对于我正在处理的一个项目,需要在窗体中显示一个类似秒表的计时器。如果我没记错的话,在VB中,文本可以输出到图片框中,但我在c#中找不到这样做的方法。如果有一种方法可以防止调整框的大小,那么标签将会起作用。谢谢。
发布于 2011-02-13 12:30:44
标签可能是最简单的选择。我不知道为什么你需要阻止调整图片框的大小(这也很容易做到)。
如果你担心你的图片框被调整大小,你的标签不再居中,或者是错误的大小,你可以将代码放在resize事件中,该事件根据图片框的当前大小动态更新标签及其字体的大小和位置。
但是,如果您决定不使用标签,则始终可以让picturebox订阅Paint事件,然后在重新绘制picturebox时使用e.Graphics仅绘制文本。
private void pictureBox1_Paint(object sender, PaintEventArgs e)
{
using (Font myFont = new Font("Microsoft Sans Serif", 10))
{
e.Graphics.DrawString("This time is...Hammertime", myFont, Brushes.Black, new Point(0,0));
}
}但是,您还必须为您的计时器的每次迭代重新绘制它。
就像我说的,Label是比这更好的选择。与Label相比,调用e.Graphics不会给您带来任何真正的优势,但它会给您带来更多需要担心的事情。
发布于 2011-02-13 08:10:29
使用TextBox可能是最合适的方法;只需将ReadOnly设置为true即可。
https://stackoverflow.com/questions/4981526
复制相似问题