private void Form1_Load(object sender, EventArgs e)
{
c1FlexGrid1.Rows[1].Height = 60; //这一句已经把行高限死了!
c1FlexGrid1.Cols[1].Width = 150;
c1FlexGrid1.DrawMode = DrawModeEnum.OwnerDraw;
c1FlexGrid1.OwnerDrawCell += new C1.Win.C1FlexGrid.OwnerDrawCellEventHandler(c1FlexGrid1_OwnerDrawCell);
}
void c1FlexGrid1_OwnerDrawCell(object sender, C1.Win.C1FlexGrid.OwnerDrawCellEventArgs e)
{
if (e.Col == 1 & e.Row == 1)
{
dynamic builder = new StringBuilder();
dynamic lines = e.Text.Split(Convert.ToChar("\n"));
foreach (string line in lines)
{
for (int index = 0; index <= line.Length - 1; index++)
{
builder.Append(line[index]);
if (index % 10 == 9)
{
builder.Append("\n");
}
}
} // 每10个字符断行,再显示出来,是的,字符串行数是增加了,但是行高没有受到影响呀,貌似与要求不符。
dynamic brush = new SolidBrush(e.Style.ForeColor);
dynamic rect = new Rectangle(e.Bounds.Location, new Size(e.Bounds.Width, e.Bounds.Height));
e.Graphics.DrawString(builder.ToString(), e.Style.Font, brush, rect);
brush.Dispose();
e.Handled = true;
}
} |