一个挺难受的问题?
先看我的代码:
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
#include "Unit2.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
Form2->ShowModal();
}
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit2.h"
#include "Unit3.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm2 *Form2;
//---------------------------------------------------------------------------
__fastcall TForm2::TForm2(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm2::BitBtn1Click(TObject *Sender)
{
//
}
//---------------------------------------------------------------------------
void __fastcall TForm2::FormShow(TObject *Sender)
{
if (Form3Show()==1)
Close();
}
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit3.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm3 *Form3;
//---------------------------------------------------------------------------
__fastcall TForm3::TForm3(TComponent* Owner)
: TForm(Owner)
{
}
int Form3Show()
{
Form3->ShowModal();
return 1;
}
//---------------------------------------------------------------------------
void __fastcall TForm3::BitBtn1Click(TObject *Sender)
{
Close();
}
//---------------------------------------------------------------------------
执行的现象是:当关闭form3时,form2还是会显示出来,我想让form2也同时关闭,如何实现?
问题点数:0、回复次数:11Top
1 楼supwjhuLoveCjj(常来看看)回复于 2003-09-03 02:13:50 得分 0
int Form3Show()
{
Form3->ShowModal();
form2= new TForm2(Application);
form2->Show();
return 1;
}
void __fastcall TForm3::BitBtn1Click(TObject *Sender)
{
Close();
form2->Close();
delete form2;
}
Top
2 楼qibo999(行路者)回复于 2003-09-03 07:36:53 得分 0
不明白你想做什么?你的代码:
void __fastcall TForm2::FormShow(TObject *Sender)
{
if (Form3Show()==1)
Close();
}
在Form3没有关闭前,Form2是不会显示出来的,因为Form3是ShowModal的,TForm2::FormShow没执行完Form2不会出来的。
你应该说一下你想要的效果,说清楚一点。
动态创建可以,不过楼上的代码有点问题。
Top
3 楼ljianq(泉深水清)回复于 2003-09-03 08:09:48 得分 0
在OnShow事件中,窗体是不能关闭的。Top
4 楼meteorain(流星雨)回复于 2003-09-03 09:14:22 得分 0
楼主的意思好象是有Form3,Form2就不出现,Form1\2\3啥关系呀 用->ShowModal();不行么?Top
5 楼7rainbow(七彩虹)回复于 2003-09-03 09:28:15 得分 0
---------在OnShow事件中,窗体是不能关闭的。---------Top
6 楼CityHost(市长)回复于 2003-09-03 11:48:01 得分 0
在FORM3的OnClose里面Form2->Cloes();试试Top
7 楼wsf()回复于 2003-09-03 13:49:45 得分 0
我现在已经搞定拉,只要把两个窗口分开显示就行。Top
8 楼pp616(坏蛋)回复于 2003-09-03 13:55:13 得分 0
厉害。Top
9 楼free1949(大白菜,小胡子)回复于 2003-09-03 14:32:23 得分 0
#@!?Top
10 楼flyinger(风往北吹)回复于 2003-09-08 21:51:36 得分 0
非常厉害!Top
11 楼runnerrunning(千寻失业ing&那是我所不能了解的事)回复于 2003-09-08 22:13:47 得分 0
好厉害啊。。Top



