'MainFormLoad'的重载与委托'System.EventHandler'(CS0123)不匹配

时间:2018-11-14 18:55:26

标签: c#

我刚刚开始学习C#编程,但遇到了问题。我做了一个简单的应用程序(只是一个带有两个按钮的窗口)。一个按钮启动另一个程序,另一个按钮在2分钟内再次显示此窗口(这是一种提醒)。没有X按钮,但仍可以由要禁用的 ALT F4 关闭。

我尝试过e.Cancel = true;,但显然我做错了。我要做的是双击主窗口,然后代码中出现void MainFormLoad(object sender, EventArgs e),然后将EventArgs e更改为FormClosingEventArgs,并将上面的e.Cancel = true;粘贴到其中。

我收到以下错误:

  

“ MainFormLoad”的任何重载均不匹配委托“ System.EventHandler”(CS0123)

它指向我在MainForm.Designer.cs中的这一行:

this.Load += new System.EventHandler(this.MainFormLoad);

这是整个代码:

using System;
using System.Diagnostics;
using System.Collections.Generic;
using System.Drawing;
using System.Windows.Forms;

namespace Reminder
{
    /// <summary>
    /// Description of MainForm.
    /// </summary>
    public partial class MainForm : Form
    {
        public MainForm()
        {
            //
            // The InitializeComponent() call is required for Windows Forms designer support.
            //
            InitializeComponent();

            //
            // TODO: Add constructor code after the InitializeComponent() call.
            //
        }
        int duration = 0;
        void Timer1Tick(object sender, EventArgs e)
        {
        duration++;
        System.Diagnostics.ProcessStartInfo start = new System.Diagnostics.ProcessStartInfo();
        start.FileName = @"C:\ThisProgram.exe";
        Process.Start(start);
        Application.Exit();
        if (duration == 1)
            {
            Timer.Stop();
            }
        }
        void LaterClick(object sender, EventArgs e)
        {
        Timer.Enabled = true;
        Timer.Start();
        Hide();
        }
        void OKClick(object sender, EventArgs e)
        {
        System.Diagnostics.ProcessStartInfo start = new System.Diagnostics.ProcessStartInfo();
        start.FileName = @"C:\OtherExternalProgram.exe";
        Process.Start(start);
        Application.Exit();
        }
        void MainFormLoad(object sender, FormClosingEventArgs e)
        {
        e.Cancel = true;
        }
    }
}

这是MainForm.Designer.cs代码:

namespace Reminder
{
    partial class MainForm
    {
        /// <summary>
        /// Designer variable used to keep track of non-visual components.
        /// </summary>
        private System.ComponentModel.IContainer components = null;
        private System.Windows.Forms.Button OK;
        private System.Windows.Forms.Timer Timer;
        private System.Windows.Forms.Button Later;

        /// <summary>
        /// Disposes resources used by the form.
        /// </summary>
        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
        protected override void Dispose(bool disposing)
        {
            if (disposing) {
                if (components != null) {
                    components.Dispose();
                }
            }
            base.Dispose(disposing);
        }

        /// <summary>
        /// This method is required for Windows Forms designer support.
        /// Do not change the method contents inside the source code editor. The Forms designer might
        /// not be able to load this method if it was changed manually.
        /// </summary>
        private void InitializeComponent()
        {
            this.components = new System.ComponentModel.Container();
            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm));
            this.OK = new System.Windows.Forms.Button();
            this.Timer = new System.Windows.Forms.Timer(this.components);
            this.Later = new System.Windows.Forms.Button();
            this.SuspendLayout();
            // 
            // OK
            // 
            this.OK.Location = new System.Drawing.Point(12, 253);
            this.OK.Name = "OK";
            this.OK.Size = new System.Drawing.Size(75, 23);
            this.OK.TabIndex = 0;
            this.OK.Text = "OK";
            this.OK.UseVisualStyleBackColor = true;
            this.OK.Click += new System.EventHandler(this.OKClick);
            // 
            // Timer
            // 
            this.Timer.Interval = 24000;
            this.Timer.Tick += new System.EventHandler(this.Timer1Tick);
            // 
            // Later
            // 
            this.Later.Location = new System.Drawing.Point(425, 253);
            this.Later.Name = "Later";
            this.Later.Size = new System.Drawing.Size(75, 23);
            this.Later.TabIndex = 1;
            this.Later.Text = "Later";
            this.Later.UseVisualStyleBackColor = true;
            this.Later.Click += new System.EventHandler(this.LaterClick);
            // 
            // MainForm
            // 
            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
            this.BackColor = System.Drawing.SystemColors.Window;
            this.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("$this.BackgroundImage")));
            this.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
            this.ClientSize = new System.Drawing.Size(512, 288);
            this.Controls.Add(this.Later);
            this.Controls.Add(this.OK);
            this.Cursor = System.Windows.Forms.Cursors.Default;
            this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
            this.MaximizeBox = false;
            this.MinimizeBox = false;
            this.Name = "MainForm";
            this.ShowIcon = false;
            this.ShowInTaskbar = false;
            this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
            this.TopMost = true;
            this.Load += new System.EventHandler(this.MainFormLoad);
            this.ResumeLayout(false);

        }
    }
}

预先感谢您的帮助。

0 个答案:

没有答案