在StringGrid中如何实现某一单元格内的文字换行呀?
在StringGrid中如何实现某一单元格内的文字换行呀?
void __fastcall TForm1::StringGrid1Click(TObject *Sender)
{
StringGrid1-> Cells[1][3]= "调查内容\n B1.您2006年春节期间是否燃放了烟花爆竹: ";
StringGrid1-> ColWidths[1]=120;
StringGrid1-> RowHeights[3]=80;
}
[解决办法]
试试这个能不能实现,通过自画的方式在单元格内画出文字
【转】
控件使用-StringGrid多行显示超长文字
void __fastcall TForm1::StringGrid1DrawCell(TObject *Sender, int ACol,
int ARow, TRect &Rect, TGridDrawState State)
{
TRect ARect; //paint cell range
ARect = StringGrid1-> CellRect(ACol,ARow);
AnsiString CurrStr = StringGrid1-> Cells[ACol][ARow] ;
if (CurrStr.Length() <10)
{
//StringGrid1-> Canvas-> Brush-> Color = clRed ;//Setting Cell color
//StringGrid1-> Canvas-> FillRect(ARect);
//StringGrid1-> Canvas-> Font-> Color = clBlack;//Setting Cell Contents Font Color
StringGrid1-> Canvas-> TextRect(ARect,ARect.Left+2,ARect.Top+2,StringGrid1-> Cells[ACol][ARow]);
}
else
{
//StringGrid1-> Canvas-> Brush-> Color = clWhite;
//StringGrid1-> Canvas-> FillRect(ARect);
//StringGrid1-> Canvas-> Font-> Color = clBlack;
StringGrid1-> Canvas-> TextOut(ARect.Left+2,ARect.Top+2,StringGrid1-> Cells[ACol][ARow].SubString(1,10));
StringGrid1-> Canvas-> TextOut(ARect.Left+2,ARect.Top+17,StringGrid1-> Cells[ACol][ARow].SubString(11,20));
}
}
[解决办法]
嫌麻烦用cell算了
[解决办法]
我觉得使用 StringGrid1DrawCell 函数非常方便呀