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

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

2013-01-05 
怎么根据字符串长度来定控件Width?Edit2-Width Edit2-Text.Length()*n控件宽度 与 字符串长度好象不成

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

热点排行