- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
当我的程序的自动生成代码启动时,它会调用
Application.Run(new Form1());
并启动 Form1。我有另一种形式,我想切换到并同时关闭 Form1。问题是,如果我在用“Form.ShowDialog()”调用另一个窗体之前在 Form1 中使用“this.Close()”,则程序结束。如果我将它放在 ShowDialog 之后,那么它会一直在后台运行,直到我关闭 Form2,此时程序结束。
如何在关闭当前打开的框架的同时生成 Frame2 的副本?
编辑:我也尝试用 .Show() 调用 Frame2,但新框架会立即关闭。
最佳答案
以下解决方案如您所愿。
要尝试此示例代码,请在 Visual Studio 中创建一个新的 WinForms 应用程序(即文件 --> 新建项目,选择 Visual C# --> Windows 经典桌面并使用模板“Windows Forms App (.NET Framework)”) ,然后添加第二种形式。
确保两个表单分别命名为Form1
和Form2
,然后修改生成的解决方案中的代码如下:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.FormClosed +=
new System.Windows.Forms.FormClosedEventHandler(this.Form1_FormClosed);
}
private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
(new Form2()).Show();
}
}
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
this.FormClosed +=
new System.Windows.Forms.FormClosedEventHandler(this.Form2_FormClosed);
}
private void Form2_FormClosed(object sender, FormClosedEventArgs e)
{
Application.Exit();
}
}
这是应用程序的入口点,修改如下:
static class Program
{
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
//Show first form and start the message loop
(new Form1()).Show();
Application.Run(); // needed, otherwise app closes immediately
}
}
诀窍是使用不带参数的 Application.Run() 和 Application.Exit() 在您想要退出应用程序的位置。
现在,当您运行该应用程序时,Form1
将打开。单击 X(右上角),Form1 关闭,但出现 Form2
。再次点击 X,表单关闭(也退出应用程序)。
除了将 Form2
的启动放入 FormClosed 事件中,您还可以创建一个按钮 Button1 来完成这项工作,但在那种情况下不要忘记通过 this.Close()
显式关闭按钮所属的表单:
private void button1_Click(object sender, EventArgs e)
{
(new Form2()).Show(); this.Close();
}
关于c# - 在 C# 中的窗体之间切换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6121826/
对于一个科学实验,我写了一个turtle.py ,它会打开一个 800x480 的窗口并绘制一个缓慢增长的黑点。 turtle.py以 C:\Users\kaza>python C:\Users\ka
我开发了一个 swing 应用程序,但每次运行应用程序时都会打开一个新窗口。我希望如果一个窗口已经打开,则其他窗口不允许打开。 最佳答案 Here是一个 Java 单一应用实例的例子: A singl
有没有办法检测主进程中 Electron 的结构? process.platform 似乎也在 x64 机器上返回 win32,我没有在文档中找到任何获取架构的选项。 最佳答案 你试过 process
public short[] HanningWindow(short[] signal_in ,int pos ,int size) { for (int i= pos; i < pos+si
我有一个具有这些属性的 Electron 窗口: mainWindow = new BrowserWindow({ width: 800, height: 600, title: "Aqu
我有一个 Ubuntu 工作站,我正在尝试引导一个 Windows 节点。 Windows 节点在端口 2222 上打开了 ssh。我一直在关注 http://docs.opscode.com/plu
我是一名优秀的程序员,十分优秀!