我正在尝试创建一个绘制一条线两个点的组合框,我创建了一个方法,我使用了两个事件Dragenter和Dragover,但是生成了一个错误:
CS7036没有任何论据符合所要求的形式参数' sender' ' Form1.DrawLine(object,PaintEventArgs)'
当我尝试在事件DragOver的最后调用方法DrawLine()时出现此错误:
有人帮帮我吗?代码在这里:
private void DrawLine(object sender, PaintEventArgs e)
{
Pen pen = new Pen(Color.FromArgb(255, 0, 0, 255), 8);
pen.StartCap = LineCap.ArrowAnchor;
pen.EndCap = LineCap.RoundAnchor;
e.Graphics.DrawLine(pen, StPoint, EnPoint);
//groupBox1.Refresh();
}
private void groupBox1_DragEnter(object sender, DragEventArgs e)
{
StPoint = new Point(e.X, e.Y);
}
private void groupBox1_DragOver(object sender, DragEventArgs e)
{
EnPoint = new Point(e.X, e.Y);
this.DrawLine();
}
答案 0 :(得分:0)
好的,你的错误,
CS7036没有任何论据符合所要求的形式参数' sender' ' Form1.DrawLine(object,PaintEventArgs)'
您似乎忘记将参数传递给DrawLine
方法中的groupBox1_DragOver
来电。
您看,DrawLine
方法是使用两个参数声明的:sender
类型object
和e
类型PaintEventArgs
。
private void DrawLine(object sender, PaintEventArgs e)
您需要在调用该方法的地方填写这些内容。
但是,如果这种方法甚至应该具有这些参数,那是值得怀疑的,因为它无论如何都不使用它们,重用它是一种负担。将主体提取为无参数方法或使用lambda绑定到事件并忽略参数(例如OnSomeEvent += (s, a) => DrawLine()
)。