c# - 输出到替代图片框

标签 c# winforms picturebox

对于我正在处理的项目,需要向表单显示类似秒表的计时器。如果我没记错的话,在 VB 中,文本可以输出到图片框,但我找不到在 C# 中执行此操作的方法。如果有一种方法可以防止调整框的大小,那么标签就可以了。谢谢。

最佳答案

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

如果您担心您的图片框被调整大小而您的标签不再居中,或者大小不正确,您可以将代码放在调整大小事件中,该事件动态更新标签的大小和位置及其字体,基于关于图片框的当前大小。

但是,如果您决定不使用标签,您始终可以让您的图片框订阅 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 会是一个更好的选择。与 Label 相比,调用 e.Graphics 不会给您带来任何真正的优势,但它会让您担心更多事情。

关于c# - 输出到替代图片框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4981526/

相关文章:

c# - 如何创建一个在触发特定事件时不运行的函数

c# - DateTimePicker:选择日期和时间

c# - 为什么我的图片框即使显示图像也是空的?

c# - 为什么类字段不能是 var?

c# - 当我们在设计器中指定列时,如何填充gridview?

winforms - 如何在 Windows 窗体中使用 DbContext 实现 DI

c# 当子 pictureBox 更改 Image 时调整父控件的大小

c# - 如何检测 PictureBox 上是否按下了鼠标按钮?

c# - 实现极其简单的服务器的最简单方法? (C#)

windows - 寻找 Forms.Screen.DeviceName 的可靠映射以监控 EDID 信息