关于隐藏或者关闭窗体的问题

killerjhma 2001-12-09 09:31:59
我在工程中有很多个窗体,但是如果我想在调用第二个窗体后关闭或者隐藏第一个窗体,应该在第一个窗体调用Hide()函数,还是在第二个窗体中调用?我两个都试过,但是都不起作用,第一个窗体都不会隐藏,这是什么问题?
...全文
128 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
kingcaiyao 2002-03-16
  • 打赏
  • 举报
回复
这样看一看,比如说我要单击一按钮来关闭Form1,打开Form2
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Form1->Visible=false;
Form2->Visible=true;
Form2->Show();
}
laiyuehui 2002-03-16
  • 打赏
  • 举报
回复
请问是不是MDI窗体如果是请写以下代码:
void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
Action=caFree;
}
ciml 2001-12-10
  • 打赏
  • 举报
回复
把登陆窗口放在这个位置:

WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
UserLogin=new TUserLogin(Application);
int iRtV=UserLogin->ShowModal();// loing dialog
delete UserLogin;
if(iRtV!=1) //login failed or user exit
{
return 0;
}
try
{
Application->Initialize();
Application->CreateForm(__classid(TMain), &Main);
Application->Run();
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
return 0;
}
//-------------------------------------------
yanxy 2001-12-10
  • 打赏
  • 举报
回复
用这个方法试试


Form1->Visible=false;
这样就可以隐掉Form1了
Richardw 2001-12-10
  • 打赏
  • 举报
回复
C++ Builder的主窗口是不能更改的,所以建议你一定不要将主窗口作为登陆窗口,可以在主窗口的OnPaint中frmLogin->showmodal();
用完了free()。
kingfish 2001-12-10
  • 打赏
  • 举报
回复
登陆窗口做成MODAL窗口,用过后关闭就行了
xycleo 2001-12-10
  • 打赏
  • 举报
回复
我想大概是你的mainFoem搞错了!!

启动是加载的是那个Form????????/
killerjhma 2001-12-10
  • 打赏
  • 举报
回复
但是我的第一个窗体是用户登陆认证的,登陆成功肯定就应该把他隐藏掉,所以,还请各位高手多指教!!!
csz_cmy 2001-12-10
  • 打赏
  • 举报
回复
最好不要对主Form这样做!
WinterWen 2001-12-10
  • 打赏
  • 举报
回复
在一个公共的Form或线程中控制Form1,form2的显示和关闭。算是解决的办法吧。
francohe 2001-12-10
  • 打赏
  • 举报
回复
!!!
jxhywdh 2001-12-10
  • 打赏
  • 举报
回复
不用这么烦!!!
1:主FORM1 加个BUTTON1
{
TForm2 *form2;
form2->ShowModal();

}

2: Form2 中:
在OnCreate() 中加
{
Form1->Hode();
};
在 OnDestye 中加
{ Form1->Show();
}


Form1 上按Button1 后 Form1 消失 Form2 出现!!!
Form2 关闭后 Form1 又出现了!!!!!
doudou536 2001-12-09
  • 打赏
  • 举报
回复
我回去试试,应该没错呀!实在不行,你就先动态创建,再隐藏!!
gzc 2001-12-09
  • 打赏
  • 举报
回复
在第二个窗体中包含第一窗体的头文件 *.h
在第二个窗体中调用Form1->Hide();
killerjhma 2001-12-09
  • 打赏
  • 举报
回复
不行
我的代码如下:
form2->Show();
form1->Hide();
或者反过来,如果在第二个窗体中调用的话:form1->Hide();
我都试过,第一个窗体就是不会隐藏呀!
大大怪老张 2001-12-09
  • 打赏
  • 举报
回复
不会吧?
Form1->Hide(); 不行吗?

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧