C# 以我自己的方式结束活动

C# 以我自己的方式结束活动,c#,winforms,events,C#,Winforms,Events,在visual studio 2010 c#中的windows应用程序中,我遇到以下问题: 我正在制作一个静态表单S1HiddenForm然后我使用它打开一个应用程序,如下所示: Command("Something[AUTOEXEC=2]", S1HiddenForm); 这为我打开了一个常用的windows窗体。我想做一个事件,当用户按下X时,他不会让他关闭窗口 如果我有一个正常的形式,我知道我可以这样做 private void Form1_FormClosing(object send

在visual studio 2010 c#中的windows应用程序中,我遇到以下问题:

我正在制作一个
静态表单S1HiddenForm然后我使用它打开一个应用程序,如下所示:

Command("Something[AUTOEXEC=2]", S1HiddenForm);
这为我打开了一个常用的windows窗体。我想做一个事件,当用户按下X时,他不会让他关闭窗口

如果我有一个正常的形式,我知道我可以这样做

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
    {
        if (e.CloseReason == CloseReason.UserClosing)
        {
            e.Cancel = true; //I'm sorry Dave, I'm afraid I can't do that.
        }
    }
在设计器视图中使用事件处理程序


但在这种情况下,我做不到。有什么建议吗?这似乎很容易,但我找不到任何有用的东西。

请与学员一起尝试。查询帮助

键入S1HiddenForm.FormClosing+=并键入TAB,在事件中编写自定义代码

你在找这个

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        static Form2 f1=new Form2();

        private void Form1_Load(object sender, EventArgs e)
        {
            f1.Show();
            f1.FormClosing += new FormClosingEventHandler(f1_FormClosing);
        }

        void f1_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (e.CloseReason == CloseReason.UserClosing)
            {
                e.Cancel = true; //I'm sorry Dave, I'm afraid I can't do that.
            }
        }
    }
}

您是否希望为没有设计器的窗体附加关闭处理程序?需要用代码来做吗?“S1HiddenForm.close+=Form1_FormClosing;”@MarvinSmit是的,我需要一个关闭处理程序。我不知道我将如何做,在我的示例中,我只是说如果我有设计器视图,我将如何做。当我按下时,你编写的代码没有任何作用X@Savior您可以尝试使用win32 api。找到X按钮win32句柄并处理按钮事件。您能详细说明一下吗?我使用你说的代码,但不知道如何编写REST。你的代码可以独立运行,但与我的代码不兼容。我不知道可能是因为我用另一个程序绑定了我的表单,所以有一个问题