怎么根据字符串长度来定控件Width?
Edit2->Width = Edit2->Text.Length()*n
控件宽度 与 字符串长度好象不成比例关系。
[解决办法]
我帮你写一个函数来搞定:
void __fastcall CrnAdjustEditWidth(TEdit *edt)
{
TControlCanvas *cc = new TControlCanvas();
cc->Font->Assign(edt->Font);
cc->Control = edt;
edt->Width = cc->TextWidth(edt->Text) + 8;
delete cc;
}
测试一下:
// ---------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Edit1->Text = "123";
CrnAdjustEditWidth(Edit1);
}
// ---------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Edit1->Text = "12fadsfdsafdsfdsa3";
CrnAdjustEditWidth(Edit1);
}
// ---------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
Edit1->Text = "CSDN论坛";
CrnAdjustEditWidth(Edit1);
}