读书人

如何根据字符串长度来定控件Width

发布时间: 2013-01-05 15:20:39 作者: rapoo

怎么根据字符串长度来定控件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);
}

读书人网 >C++ Builder

热点推荐