Visual Studio 2008 SP1 C # Windows-приложение
Я пишу и рисую прямо в основной форме, и у меня возникла проблема с перерисовкой экрана.При запуске программы экран рисует правильно.Еще два сообщения рисования следуют через 3-4 секунды (без действия или движения на экране), и экран раскрашивается с использованием координат экрана (я думаю) вместо клиентских координат.Исходная строка не стирается.
Чтобы свести проблему к ее простейшему виду, я запустил новое приложение для Windows на C #.Он ничего не делает, кроме как нарисовать строку в главной форме.(См. Фрагмент кода ниже). Если вы запустите программу, появится строка, а затем появится вторая строка выше и слева.Если вы перезапустите программу и переместите форму к верхнему левому углу экрана, две строки будут почти совпадать.Вот почему я думаю, что вторая краска использует экранные координаты.
Вот код - Заранее спасибо за любую помощь, которую вы можете оказать.
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
}
}
}