私はpictureBox1ペイントイベントを持っています。ペイントイベントで、テキストファイルにいくつかの情報を書き込んでいます:
private void pictureBox1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
{
SolidBrush brush;
Pen p=null;
Point connectionPointStart;
Point connectionPointEnd;
Graphics g = e.Graphics;
g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
brush = new SolidBrush(Color.Red);
p = new Pen(brush);
for (int idx = 0; idx < wireObject1._point_X.Count; ++idx)
{
Point dPoint = new Point((int)wireObject1._point_X[idx], (int)wireObject1._point_Y[idx]);
dPoint.X = dPoint.X - 5; // was - 2
dPoint.Y = dPoint.Y - 5; // was - 2
Rectangle rect = new Rectangle(dPoint, new Size(10, 10));
g.FillEllipse(brush, rect);
// g.FillEllipse(brush, rect);
}
for (int i = 0; i < wireObject1._connectionstart.Count; i++)
{
int startIndex = wireObject1._connectionstart[i];
int endIndex = wireObject1._connectionend[i];
connectionPointStart = new Point((int)wireObject1._point_X[startIndex], (int)wireObject1._point_Y[startIndex]);
connectionPointEnd = new Point((int)wireObject1._point_X[endIndex], (int)wireObject1._point_Y[endIndex]);
p.Width = 4;
g.DrawLine(p, connectionPointStart, connectionPointEnd);
moveCounter++;
textBox1.Text = moveCounter.ToString();
if (moveCounter > 10)
{
w.WriteLine("Number Of Moves ===> " + moveCounter);
}
}
}
In the bottom i have a w.WriteLine....
In the top of Form1 i did StreamWriter w;
In the constructor i did: w = new StreamWriter(@"d:\test.txt");
In the pictureBox1 mouse up event im doing w.Close();
private void pictureBox1_MouseUp(object sender, MouseEventArgs e)
{
if (mouseMove == true)
{
Point NewPoint = e.Location;
wireObject1._point_X[(int)selectedIndex] = NewPoint.X;
wireObject1._point_Y[(int)selectedIndex] = NewPoint.Y;
mouseMove = false;
if (moveCounter == 0)
{
}
else
{
w.Close();
}
WireObjectCoordinatesCloneFrame();
}
}
だから私はマウスを動かしてその記録をファイルに書き込んで、int型の変数moveCounterからの情報を書き込んでいます。
問題は、マウスアップイベントを作成し、pictureBox1 のファイルを閉じると、白い背景に大きな赤い X が表示されることです。それ自体のファイルは、必要なすべての情報を含むハードディスク上で問題ありません。
しかし、なぜ大きな赤い x が pictureBox1 に表示されるのでしょうか? ペイント イベントから w.WriteLine を削除すると、大きな赤い x が表示されなくなります。
それを解決するために私は何ができますか?