首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

请问一个打开界面的小疑点

2012-02-05 
请教一个打开界面的小问题在第一个界面中(form1)new出第二个界面时,怎样把第一个界面close?[解决办法]form

请教一个打开界面的小问题
在第一个界面中(form1)new出第二个界面时,怎样把第一个界面close?

[解决办法]
form1-> Hide();
form2-> Show();
[解决办法]
你Close不掉的!除非你的两个Form没有包含关系
[解决办法]
不是一定Close不掉,关键要看你是怎么Show出来的 是用Show还是用ShowModal()
如果是Show出来的 那是可以Close的
程序如下:
比如有3个Form Form1,Form2,Form3
Form1上打开Form2,Form2上打开Form3
//-------------------------Form1中的代码------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
if(Application-> FindComponent( "Form2 ") == NULL)
{
TForm2 *f = new TForm2(Application);
f-> Show();
}
else
Form2-> Show();
}
//-------------------------Form2------------------------------------------

void __fastcall TForm2::Button1Click(TObject *Sender)
{
if(Application-> FindComponent( "Form3 ") == NULL)
{
TForm3 *f = new TForm3(Application);
f-> Show();
}
else
Form3-> Show();

this-> Close();
}

void __fastcall TForm2::FormClose(TObject *Sender, TCloseAction &Action)
{
Action = caFree;
}
//-----------------------------Form3-----------------------------------------
void __fastcall TForm3::FormClose(TObject *Sender, TCloseAction &Action)
{
Action = caFree;
}
//---------------------------------------


[解决办法]
把上面代码中的Show改用ShowModal 在点了button后前一个Form还是能看到的 只有关闭后一个new出来的Form前一个Form才会被Close
[解决办法]
一般主窗体是不能关闭的,只能隐藏的,主窗体关闭了,整个程序也就关闭了

热点排行