输出到图片框替代

时间:2011-02-13 00:07:36

标签: c# winforms picturebox

对于我正在进行的项目,需要在表格中显示类似秒表的计时器。如果我在VB中正确记得,文本可以输出到图片框,但我找不到在c#中做到的方法。如果有办法防止盒子的大小调整,标签就可以使用。谢谢。

2 个答案:

答案 0 :(得分:2)

标签可能是最简单的选择。我不确定为什么你需要阻止调整图片框的大小(这也很简单)。

如果您担心您的图片框被调整大小并且您的Label不再居中或尺寸错误,您可以将代码放入resize事件中,该事件会动态更新Label及其字体的大小和位置关于图片框的当前大小。

但是,如果您决定不使用标签,您可以随时让您的图片框订阅Paint事件,然后使用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会比这更好。调用e.Graphics不会给你带来任何真正的优势,但它会为你创造更多让你担心的东西。

答案 1 :(得分:1)

使用TextBox可能是最合适的事情;只需将ReadOnly设置为true。