2017-10-12 83 views
-2

我有,我不无如何修复错误。我会用代码来解释答案。这是错误,错误1,没有超载的 'turnToVideoToolStripMenuItem_Click' 匹配委托 'System.EventHandler' C:\用户\ kinoa \文件\的Visual Studio 2013 \项目\装甲动画工作室\装甲动画工作室\ main.Designer.cs 259 56装甲动画工作室。C#如何解决这一问题

这是代码,

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(); 
    } 


} 
} 

谢谢!

+4

删除',串[] args'从turnToVideoToolStripMenuItem_Click声明。 – 2017-10-12 11:18:23

+3

为什么在事件结尾添加string [] args? – Amit

回答

1

更改方法签名:

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

到:

private void turnToVideoToolStripMenuItem_Click(object sender, EventArgs e) 

会照顾的编译器错误的,但你留下了越来越到您预计在args中的数据。你期望在最后一个参数中传递什么?