OnPaint无法正确绘制

OnPaint无法正确绘制

Visual Studio 2008 SP1 C# Windows应用程序

我正在直接向主窗体写入和绘制,但在重新绘制屏幕时遇到了问题。在程序启动时,屏幕可以正确绘制。另外两个paint消息在3-4秒内出现(屏幕上没有动作或运动),屏幕使用屏幕坐标(我认为)而不是客户端坐标进行绘制。原始字符串不会被擦除。

为了将问题简化为最简单的形式,我启动了一个新的C# windows应用程序。它除了在主窗体上绘制一个字符串之外,什么也不做。(参见下面的代码片段)如果您启动程序,该字符串将出现,然后第二个字符串将出现在上方和左侧。如果重新启动程序并将窗体移到屏幕的左上角,两个字符串将几乎重合。这就是为什么我认为第二个画图使用了屏幕坐标。

以下是代码-提前感谢您能提供的任何帮助。

代码语言:javascript运行复制using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

namespace Junk

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

protected override void OnPaint(PaintEventArgs eventArgs)

{

using (Font myFont = new System.Drawing.Font("Helvetica", 40, FontStyle.Italic))

{

eventArgs.Graphics.TranslateTransform(0, 0);

Point p;

eventArgs.Graphics.DrawString("Hello C#", myFont, System.Drawing.Brushes.Red, 200, 200);

} //myFont is automatically disposed here, even if an exception was thrown

}

}

}

你可能也喜欢

瑞典世界杯战绩,瑞典队进过几次世界杯成绩如何
365bet官网平台网址

瑞典世界杯战绩,瑞典队进过几次世界杯成绩如何

📅 07-05 👀 8815
打印机的安装方法 添加本地或网络打印机的详细方法(图文教程)
beat365手机版官方网站正规

打印机的安装方法 添加本地或网络打印机的详细方法(图文教程)

📅 07-12 👀 5231
世界杯秘鲁对丹麦技术统计,秘鲁队vs丹麦队历史战绩
beat365手机版官方网站正规

世界杯秘鲁对丹麦技术统计,秘鲁队vs丹麦队历史战绩

📅 07-07 👀 3006
花甲与蚬子:同为贝类却大有不同,一文读懂两者本质区别
beat365手机版官方网站正规

花甲与蚬子:同为贝类却大有不同,一文读懂两者本质区别

📅 07-17 👀 328
Windows11美式键盘怎么调出来 Win11切换美式键盘教程【详解】
2024年引力波概念有哪些相关股票值得关注,内附股票!(6月5日)