DevExpress ListView 列宽自适应

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
XtraReport交叉表控件默认情况下是不支持自适应行高和最佳的。但是可以通过一些小技巧实现。 对于自适应行高,可以在交叉表的BeforePrint事件中计算每个单元格的文字高度,然后将单元格的高度设置为文字高度加上一些间距即可。示例代码如下: ``` private void xrcrossTab_BeforePrint(object sender, PrintEventArgs e) { XRLabel cell = ((XRLabel)sender); cell.Padding = new DevExpress.XtraPrinting.PaddingInfo(2, 2, 2, 2, 100F); cell.AutoWidth = true; cell.CanGrow = true; cell.Multiline = true; cell.HeightF = GetTextHeight(cell.Text, cell.Font, cell.WidthF) + 10F; } private float GetTextHeight(string text, Font font, float width) { using (Graphics g = Graphics.FromImage(new Bitmap(1, 1))) { return g.MeasureString(text, font, (int)width).Height; } } ``` 对于最佳,可以在交叉表的AfterPrint事件中计算每的最大度,然后将设置为最大度即可。示例代码如下: ``` private void xrcrossTab_AfterPrint(object sender, EventArgs e) { int columnCount = xrcrossTab.ColumnCount; float[] columnWidths = new float[columnCount]; for (int i = 0; i < columnCount; i++) { float maxColumnWidth = 0; for (int j = 0; j < xrcrossTab.RowCount; j++) { XRLabel cell = xrcrossTab.GetCell(i, j) as XRLabel; if (cell != null && cell.WidthF > maxColumnWidth) { maxColumnWidth = cell.WidthF; } } columnWidths[i] = maxColumnWidth; } xrcrossTab.ColumnWidths = string.Join(",", columnWidths.Select(w => w.ToString() + "f")); } ``` 以上代码仅供参考,具体实现还需要根据具体业务需求进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值