环境WindowsXP,BCB6.0(UPD4 (English)
Form1(主Form),Form1上有Button1,点击Button1显示Form2。
Form2上有一个RadioGroup1和Edit1,在Form2的OnShow事件中,
进行RadioGroup1->ItemIndex = StrToInt(Edit1->Text);赋值操作。Edit1->Text默认值0。
Form2显示后,在界面上选择与StrToInt(Edit1->Text)不同的选项后关闭Form2。假设选择了第二项。
回到Form1,重新打开Form2,这时应该显示的是RadioGroup1->ItemIndex = 0;
可是结果却显示为第二项。
PS:Form1,Form2都是自动创建的Form。
From1.cpp代码如下
//----------------------------Head Begin-----------------------------------------------
#ifndef Unit1H
#define Unit1H
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <ExtCtrls.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published: // IDE-managed Components
TButton *Button1;
void __fastcall Button1Click(TObject *Sender);
private: // User declarations
public: // User declarations
__fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif
//---------------------------Head End------------------------------------------------
//---------------------------Cpp Begin------------------------------------------------
#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::Button1Click(TObject *Sender)
{
Form2->Show();
}
//--------------------------Cpp End-------------------------------------------------
Form2代码如下
//--------------------------Form2 Head Begin-------------------------------------------------
#ifndef Unit2H
#define Unit2H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <ExtCtrls.hpp>
//---------------------------------------------------------------------------
class TForm2 : public TForm
{
__published: // IDE-managed Components
TRadioGroup *RadioGroup1;
TEdit *Edit1;
void __fastcall FormShow(TObject *Sender);
private: // User declarations
public: // User declarations
__fastcall TForm2(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm2 *Form2;
//---------------------------------------------------------------------------
#endif
//-----------------------------Form2 Head End----------------------------------------------
//-----------------------------From2 Cpp Begin----------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit2.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm2 *Form2;
//---------------------------------------------------------------------------
__fastcall TForm2::TForm2(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm2::FormShow(TObject *Sender)
{
RadioGroup1->ItemIndex = StrToInt(Edit1->Text);
}
//------------------------------From2 Cpp End---------------------------------------------
解决方法:
在TForm2::FormShow加入RadioGroup1->SetFocus();
void __fastcall TForm2::FormShow(TObject *Sender)
{
RadioGroup1->SetFocus(); //加入
RadioGroup1->ItemIndex = StrToInt(Edit1->Text);
}
posted on 2010-07-05 15:53
楚天清秋 阅读(1695)
评论(1) 编辑 收藏 引用 所属分类:
C++ Builder