点击按钮时如何关闭C++ VCL Form1并打开Form3?
解决点击按钮关闭Form1并打开Form3的问题
你当前代码的问题在于:
TForm1 *CurrentForm = new TForm1(this);创建了一个全新的Form1实例,并非用户正在操作的那个窗口- 调用
CurrentForm->Close()只是关闭了这个刚创建的空窗口,对原本显示的Form1完全没有作用
正确修改方案
直接通过this指针操作当前Form1实例(当前函数是TForm1的成员方法,this指向当前运行的Form1窗口),同时确保包含Form3的头文件:
#include "Welcome.h" #include "Login.h" #include "Form3.h" // 必须添加Form3的头文件引用 void __fastcall TForm1::LoginButtonClick(TObject *Sender) { // 关闭当前Form1窗口 this->Close(); // 创建并显示Form3 TForm3 *NewForm = new TForm3(this); NewForm->Show(); }
额外注意事项
如果Form1是程序的主窗口,直接关闭它会导致整个程序退出(VCL程序默认主窗口关闭时终止程序)。这种情况下需要先设置Form3为新的主窗口,再关闭Form1:
void __fastcall TForm1::LoginButtonClick(TObject *Sender) { TForm3 *NewForm = new TForm3(this); NewForm->Show(); // 将Form3设置为程序主窗口,避免关闭Form1时程序退出 Application->MainForm = NewForm; this->Close(); }
内容的提问来源于stack exchange,提问作者Angelina
相关产品推荐
相关产品推荐

