如何触发 TRadioButton 的OnClick事件

耙子 2002-09-14 10:13:03
bcb5 下面,
我写了简单的代码,2各TRadioButton 、一个TButton 和 2个TMemo.

// RadioButton 1, 2 共同的事件,他们的Tag分别是 0,1以便区分
void __fastcall TForm1::RadioButton1Click(TObject *Sender)
{
switch (dynamic_cast<TComponent*>(Sender)->Tag)
{
case 0:
Memo2->Color= clInfoBk;
break;
case 1:
Memo2->Color= clWhite;
break;
}
Memo2->Tag= dynamic_cast<TComponent*>(Sender)->Tag;
Memo2->SetFocus();
}
//---------------------------------------------------------------------------


void __fastcall TForm1::Button1Click(TObject *Sender)
{
if (Memo2->Modified) {
Memo1->Lines->Add(Memo2->Text);
Memo1->Lines->Add("");
Memo2->Clear();
Memo2->Modified= false;
}
if (RadioButton1->Checked)
RadioButton2->OnClick(RadioButton2); // 出错!没有执行到 RadioButton的OnClick事件
else
RadioButton1->Checked= false; // 这么写触发不了 OnClick事件

}
//---------------------------------------------------------------------------
我想在 Button的时间里面出发RadioButton的 OnClick事件;
但是上面写的不行,出错!

大家帮着看看,解释一下。
我吃饭去了,一会儿回来……
...全文
88 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
aawolf 2002-09-14
  • 打赏
  • 举报
回复
反过来看不到效果,这样按下Button的时候可以看到RadioButton的OnClick事件被执行了呀。和你说的不太一样。
void __fastcall TForm1::Button1Click(TObject *Sender)
{
if (Memo2->Modified) {
Memo1->Lines->Add(Memo2->Text);
Memo1->Lines->Add("");
Memo2->Clear();
Memo2->Modified= false;
}
if (RadioButton1->Checked)
RadioButton2->OnClick(RadioButton2); // 出错!没有执行到 RadioButton的OnClick事件
else
RadioButton2->OnClick(RadioButton1);
//RadioButton1->Checked= false; // 这么写触发不了 OnClick事件
}
耙子 2002-09-14
  • 打赏
  • 举报
回复
我又看了一下,明白了,原来 RadioButton2 忘了指定事件了,他的OnClick是空的!
tmd bcb告诉我OnClick是空就完了,结果弄了一大堆的错误。

解帖子了!
aawolf 2002-09-14
  • 打赏
  • 举报
回复
耙子,我试了一下,不是执行不到,而是两次都执行case 1:去了。

13,822

社区成员

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

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