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

初学者弱问~别笑小弟我~

2012-03-06 
菜鸟弱问~~~~~!别笑我~~想用一个CheckBox的Checked属性来完成对Edit的Text进行添加和删除某个特定字段。假

菜鸟弱问~~~~~!别笑我~~
想用一个CheckBox的Checked属性来完成对Edit的Text进行添加和删除某个特定字段。
假如CheckBox的Checked属性为true时
在Edit的Text写上数据“c,”
相反CheckBox的Checked属性为false时
把Edit的Text上的数据“c,”删除。
不能直接清空Edit的Text上的数据,因为还有别的数据,请问怎么做啊?


[解决办法]
if(CheckBox-> Checkde)
Edit-> Text = Edit-> Text + "c ";
else
{
while(Edit-> Text.Pos( "c ") > 0)
{
Edit-> Text = Edit-> Text.Delete(Edit-> Text.Pos( "c "),1);
}
}
[解决办法]
有很多种方法
可以建Edit数组每次都遍历一下各个状态(适合动态创建和销毁,有点复杂)
或者
给每个Edit设全局变量保存其该显示的值(按你的要求还是建议你采用这个方法)
String a= " ",b= " ";
//---------------------------------------
void __fastcall TForm2::CheckBox1Click(TObject *Sender)
{
if (CheckBox1-> Checked) {
a= "one ";
}else{
a= " ";
}
Edit1-> Text=a+b;
}
//---------------------------------------
void __fastcall TForm2::CheckBox2Click(TObject *Sender)
{
if (CheckBox2-> Checked) {
b= "two ";
} else{
b= " ";
}
Edit1-> Text=a+b;
}
[解决办法]
AnsiString strTmp = Edit-> Text;
if(CheckBox-> Checked)
Edit-> Text = Edit-> Text + "c, ";
else
{
while(Edit-> Text.Pos( "c ") > 0)
{
Edit-> Text = strTmp.SubString(0,strTmp.Pos( "c ")) + strTmp.SubString(strTmp.Pos( "c ")+2,strTmp.Length());
}
}
不知道 这样可以不?

热点排行