c# – 确保在dataGridView列中打包文本

前端之家收集整理的这篇文章主要介绍了c# – 确保在dataGridView列中打包文本前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个特定列的dataGridView.当我在dataGridView中写长文本时,它会显示一个缩写版本,带有省略号,因为该列不够宽,无法显示整个字符串.
| textdsadasda...  |

如果我想要dataGridView在下一行显示这个文本,或者包装文本,我该怎么办?

| textdsadasda     |
| dasdasa          |  (continuation of line above)

如何才能做到这一点?

解决方法

可能是处理细胞油漆事件可以帮助你
private void dataGridView1_CellPainting(object sender,DataGridViewCellPaintingEventArgs e)
{
    if (e.Value == null)
        return;
    var s = e.Graphics.MeasureString(e.Value.ToString(),dataGridView1.Font);
    if (s.Width > dataGridView1.Columns[e.ColumnIndex].Width)
    {
        using (
  Brush gridBrush = new SolidBrush(this.dataGridView1.GridColor),backColorBrush = new SolidBrush(e.CellStyle.BackColor))
        {
            e.Graphics.FillRectangle(backColorBrush,e.CellBounds);
            e.Graphics.DrawString(e.Value.ToString(),dataGridView1.Font,Brushes.Black,e.CellBounds,StringFormat.GenericDefault);
            dataGridView1.Rows[e.RowIndex].Height = (int)(s.Height * Math.Ceiling( s.Width / dataGridView1.Columns[e.ColumnIndex].Width)) ;
            e.Handled = true;
        }
    }
}

猜你在找的C#相关文章