Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在C中处理program.cs中的按钮单击事件#_C#_Windows_Desktop Application_Buttonclick_Mouseclick Event - Fatal编程技术网

C# 如何在C中处理program.cs中的按钮单击事件#

C# 如何在C中处理program.cs中的按钮单击事件#,c#,windows,desktop-application,buttonclick,mouseclick-event,C#,Windows,Desktop Application,Buttonclick,Mouseclick Event,我有两个表格,即表格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 th

我有两个表格,即表格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()

首先需要使按钮在表单类外部可见。
这是通过将WinForms Designer中的修饰符属性设置为public完成的,或者,如果以编程方式创建按钮,则需要在表单级别声明变量public

现在,使用public按钮,您可以为其click事件编写事件处理程序,并将该处理程序写入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();
    }
}

您能详细介绍一下您使用此代码的地方吗?它在主功能中吗?是的,正是Steve。它位于私有静态void Main(){………}块中。谢谢您的回答。当它工作时,我会立即将其标记为正确:)Steve,你确定我们可以像你在回答中那样访问静态类事件吗?抱歉,手写,忘记将静态添加到事件句柄谢谢你是天才,但有一件事,除了应用程序之外还有其他方法吗。运行FormA。这只是因为我必须使用应用程序一次又一次地运行来启动内核。提前感谢:)谢谢你的评论告诉我如何接受答案,是的,你是对的,我应该问一些更详细的问题:)谢谢