[英]windowsforms C# Control - Move and resize a control in execution time
我正在尝试创建一个绘制两条线的分组框,并创建了一个方法,并且使用了两个事件Dragenter和Dragover,但生成了一个错误:
CS7036没有给出与“ Form1.DrawLine(object,PaintEventArgs)”的所需形式参数“ sender”相对应的参数
当我尝试在事件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();
}
鉴于您的错误,
CS7036没有给出与“ Form1.DrawLine(object,PaintEventArgs)”的所需形式参数“ sender”相对应的参数
似乎您忘记了将参数传递给groupBox1_DragOver
方法中的DrawLine
调用。
您会看到,使用两个参数声明了DrawLine
方法: object
类型的sender
和PaintEventArgs
类型的e
。
private void DrawLine(object sender, PaintEventArgs e)
您需要在调用方法的地方填写这些内容。
但是,由于此方法是否仍然使用这些参数,是否仍应使用这些参数值得怀疑,因此重用它是一个负担。 将主体提取为无参数方法,或者使用lambda绑定到事件并忽略参数(例如OnSomeEvent += (s, a) => DrawLine()
)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.