C#如何解决这个问题

时间:2017-10-12 11:16:30

标签: c#

我有一个错误,我不知道怎么解决。我会在代码中给出答案。这是错误,错误1没有重载 ' turnToVideoToolStripMenuItem_Click'匹配委托' System.EventHandler' C:\ Users \ kinoa \ documents \ visual studio 2013 \ Projects \ Armored Animation Studio \ Armored Animation Studio \ main.Designer.cs 259 56 Armored Animation Studio。

这是代码,

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    using NReco.VideoConverter;
    using System.Diagnostics;
    using System.IO;

    namespace Armored_Animation_Studio
    {
    public partial class main : Form
    {
    public Point current = new Point();
    public Point old = new Point();
    public Graphics g;
    public Pen p = new Pen(Color.Black, 5);
    public List<Image> Animation = new List<Image>();
    public main()
    {
        InitializeComponent();
        g = panel1.CreateGraphics();
        p.SetLineCap(System.Drawing.Drawing2D.LineCap.Round, 
    System.Drawing.Drawing2D.LineCap.Round, 
    System.Drawing.Drawing2D.DashCap.Round);
    }

    private void panel1_MouseMove(object sender, MouseEventArgs e)
    {
        if (e.Button == MouseButtons.Left)
        {
            current = e.Location;
            g.DrawLine(p, current, old);
            old = current;
        }
    }

    private void panel1_MouseDown(object sender, MouseEventArgs e)
    {
        old = e.Location;
        if(radioButton1.Checked)
        {
            p.Width = 1;
        }
        else if(radioButton2.Checked)
        {
            p.Width = 5;
        }
        else if (radioButton3.Checked)
        {
            p.Width = 10;
        }
        else if (radioButton4.Checked)
        {
            p.Width = 15;
        }
        else if (radioButton5.Checked)
        {
            p.Width = 30;
        }
    }

    private void button1_Click(object sender, EventArgs e)
    {
        ColorDialog cd = new ColorDialog();
        if (cd.ShowDialog() == DialogResult.OK)
            p.Color = cd.Color;
    }

    private void button3_Click(object sender, EventArgs e)
    {
        panel1.Invalidate();
    }

    private void radioButton7_CheckedChanged(object sender, EventArgs e)
    {
        p.Color = System.Drawing.Color.White;
    }

    private void button2_Click(object sender, EventArgs e)
    {
        Bitmap bmp = new Bitmap(panel1.Width, panel1.Height);
        panel1.DrawToBitmap(bmp, new Rectangle(0, 0, panel1.Width, 
     panel1.Height));
        Animation.Add(bmp);
    }


    private void turnToVideoToolStripMenuItem_Click(object sender, EventArgs 
    e, string [] args)
    {
                    Process proc = new Process();
        proc.StartInfo.FileName = "ffmpeg";
        proc.StartInfo.Arguments = "-i " + args[0] + " " + args[1];
        proc.StartInfo.RedirectStandardError = true;
        proc.StartInfo.UseShellExecute = false;
        if (!proc.Start())
        {
            Console.WriteLine("Error starting");
            return;
        }
        StreamReader reader = proc.StandardError;
        string line;
        while ((line = reader.ReadLine()) != null)
        {
            Console.WriteLine("ffmpeg -i <imagefile> -vcodec mpeg4 out_movie");
        }
        proc.Close();
    }


}
}

谢谢!

1 个答案:

答案 0 :(得分:1)

更改方法签名:

private void turnToVideoToolStripMenuItem_Click(object sender, EventArgs e, string [] args)

为:

private void turnToVideoToolStripMenuItem_Click(object sender, EventArgs e)

会处理编译器错误,但是您需要获取预期在args中的数据。你期望在最后一个参数中传递什么?