【问题标题】:How to handle button click event in program.cs in C#如何在 C# 中的 program.cs 中处理按钮单击事件
【发布时间】:2020-05-10 19:15:43
【问题描述】:

我有两个表单,即表单 A 和表单 B。如果仅单击表单 A 的按钮 X,则表单 B 将显示,表单 A 将隐藏。我必须在 windows 窗体应用程序的 program.cs 中完成所有这些操作。

这里是截取的代码

            FormA A = new FormA ();
            FormB B = new FormB ();

            A.Show();                    
            if(Button in form A is clicked then )
                  B.Show() and A.hide();
            else 
                  application.close()

【问题讨论】:

  • 您能否详细说明您使用此代码的位置?是在 Main 函数里面吗?
  • 是的,正是史蒂夫。它位于 private static void Main() { ................ } 块内

标签: c# windows desktop-application buttonclick mouseclick-event


【解决方案1】:

首先需要让按钮在表单类之外可见。
这是通过将 WinForms 设计器中的 Modifier 属性设置为 public 来完成的,或者,如果您以编程方式创建按钮,则需要在表单级别声明变量 public。

现在,使用公共按钮,您可以为其单击事件编写一个事件处理程序,并将该处理程序写入 Program.cs 类中。
这还要求您的 FormA 和 FormB 变量在按钮的事件处理程序中可用,因此您还需要将它们公开。

public static class Program
{
    static FormA A;
    static FormB B;

    public static void Main()
    { 

        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);

        A = new FormA();
        B = new FormB();
        A.Button1.Click += onClick;    

        // This should show the A instance
        Application.Run(A);
        ....
    }
    public static void onClick(oject sender, EventArgs)
    {
        A.Hide();
        B.Show();
    }
}

【讨论】:

  • 感谢您的回答。我会在它工作后立即将其标记为正确:)
  • 史蒂夫,你确定我们可以像你在答案中那样访问静态类事件吗?
  • 抱歉,手写,忘记在事件处理程序中添加static
  • 谢谢你是天才,但有一件事,除了 Application.Run for FormA,还有其他方法吗?这只是因为我必须使用运行后运行的应用程序来启动内核。提前致谢:)
  • 感谢您的评论告诉我如何接受答案,是的,您是对的,我应该询问更多细节:) 谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-10-16
  • 1970-01-01
  • 1970-01-01
  • 2016-11-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多