我目前正在尝试使用Windows窗体应用程序在C#中创建一个简单的绘图程序。使用ToArray函数将我的Points列表转换为数组时,我得到一个通用的“ArgumentException未处理:参数无效”错误。我知道我以前做过这个并且工作正常,DrawLines函数有什么特别之处我不知道吗?下面是代码,有问题的行是panel1_Paint事件中的最后一行。提前感谢您提供的任何帮助。
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 GetSig
{
public partial class Form1 : Form
{
bool paint = false;
List<Point> myPointList = new List<Point>();
private void panel1_MouseDown(object sender, MouseEventArgs e)
{
paint = true;
}
private void panel1_MouseMove(object sender, MouseEventArgs e)
{
if (paint)
{
myPointList.Add(e.Location);
panel1.Invalidate();
}
}
private void panel1_MouseUp(object sender, MouseEventArgs e)
{
paint = false;
}
private void panel1_Paint(object sender, PaintEventArgs e)
{
e.Graphics.DrawLines(Pens.Black, myPointList.ToArray());
}
}
}
答案 0 :(得分:2)
答案 1 :(得分:0)
很可能该异常不是来自ToArray
,而是来自e.Graphics.DrawLines
。
答案 2 :(得分:0)
嗯,如果没有至少两点,你就无法绘制线条:)
if (myPointList.Count >= 2)
{
e.Graphics.DrawLines(Pens.Black, myPointList.ToArray());
}