windowsforms C#Control - 在执行时间内移动控件并调整其大小

时间:2016-11-23 18:34:04

标签: c# windows-forms-designer

我正在尝试创建一个绘制一条线两个点的组合框,我创建了一个方法,我使用了两个事件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();
    }

1 个答案:

答案 0 :(得分:0)

好的,你的错误,

  

CS7036没有任何论据符合所要求的形式参数' sender' ' Form1.DrawLine(object,PaintEventArgs)'

您似乎忘记将参数传递给DrawLine方法中的groupBox1_DragOver来电。

您看,DrawLine方法是使用两个参数声明的:sender类型objecte类型PaintEventArgs

private void DrawLine(object sender, PaintEventArgs e)

您需要在调用该方法的地方填写这些内容。

但是,如果这种方法甚至应该具有这些参数,那是值得怀疑的,因为它无论如何都不使用它们,重用它是一种负担。将主体提取为无参数方法或使用lambda绑定到事件并忽略参数(例如OnSomeEvent += (s, a) => DrawLine())。