WINFORM - DevExpress -> gridcontrol--->advBandedGridView

使用DevExpress GridControl实现复合表头并绑定数据

使用DevExpress GridControl实现复合表头并绑定数据 - 百度文库

advBandedGridView内容自动换行和调整自适应行高


首先是自动换行,可以创建一个repositoryItemMemoEdit 并绑定到需要换行的列中 

再设置一下repositoryItemMemoEdit高度自适应,这样子就完成了自动换行了

repositoryItemMemoEdit1.AutoHeight = true;

之后需要使用事件advBandedGridView1_CalcRowHeight。这个事件是让我们可以单独设置行高。因为advBandedGridView没有rowautoheight所以需要我们自己设置

代码如下

//获得字体的宽度和高度。
            Graphics graphics = CreateGraphics();
            SizeF sizef = graphics.MeasureString(advBandedGridView1.GetRowCellValue(e.RowHandle, "测试").ToString(), advBandedGridView1.Appearance.Row.Font);
            //根据字体的宽度除以这列的宽度计算得出需要几行。使用Ceiling把小数都进一位成整数
            double doub = Math.Ceiling(sizef.Width / advBandedGridView1.Columns["测试"].Width);
            //设置行高为需要几行乘以这个字体的高度
            e.RowHeight = (int)(doub*sizef.Height);

完整代码

using DevExpress.XtraGrid.Views.Grid.ViewInfo;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
 
namespace 文件管理
{
    public partial class Form1 : DevExpress.XtraEditors.XtraForm
    {
        public Form1()
        {
            InitializeComponent();
            //添加测试数据并绑定数据源
            DataTable dt = new DataTable();
            dt.Columns.Add("测试");
            dt.Columns.Add("测试1");
            dt.Rows.Add("谁谁谁时尚所所所所所所所所所所所所所所所所所所所所所所所所所所所所所所所所所所所所所所所所所所所所所所s", "ssssssssss");
            dt.Rows.Add("ssss","wwwww");
            dt.Rows.Add("谁谁谁wwwwwwww时尚所所2所所所所所所所所所所所所所所所所所所所所所所所所所所所所所所所所所所所所所所所所所所所所s", "siiiiiiihiiiiiii");
            gridControl1.DataSource = dt;
            //自适应高度
            repositoryItemMemoEdit1.AutoHeight = true;
        }
        private void advBandedGridView1_CalcRowHeight(object sender, DevExpress.XtraGrid.Views.Grid.RowHeightEventArgs e)
        {
            //获得字体的宽度和高度。
            Graphics graphics = CreateGraphics();
            SizeF sizef = graphics.MeasureString(advBandedGridView1.GetRowCellValue(e.RowHandle, "测试").ToString(), advBandedGridView1.Appearance.Row.Font);
            //根据字体的宽度除以这列的宽度计算得出需要几行。使用Ceiling把小数都进一位成整数
            double doub = Math.Ceiling(sizef.Width / advBandedGridView1.Columns["测试"].Width);
            //设置行高为需要几行乘以这个字体的高度
            e.RowHeight = (int)(doub*sizef.Height);
        }
    }

Demo下载地址advBandedGridView自动换行自适应高度_devgridview行高,devgridview行高自动调整-C#代码类资源-CSDN下载

新增

1.目前测试无论多少个repositoryItemMemoEdit,只有repositoryItemMemoEdit1管用

也就是第一个字段“测试”

参考

1.我这边只有在报表的时候才用adv。报表都是不可编辑的展示。 我这边只有在报表的时候才用;报表都是不可编辑的展示.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
WinForm中,可以通过自定义单元格样式来实现GridControl中单元格文字的不同颜色或背景色。具体步骤如下: 1. 在GridControl的Properties窗口中找到Appearance属性,将其设为DevExpress.XtraGrid.Views.Grid.DrawFocusRectStyle.None,这样可以去掉单元格的焦点框。 2. 在GridControl上双击打开GridView的Designer界面。 3. 选中要修改样式的列,找到AppearanceCell属性,单击右侧的“...”按钮打开AppearanceObject对象的编辑器。 4. 在AppearanceObject编辑器中,可以设置字体、背景色、前景色等属性,还可以通过条件格式化来实现更复杂的样式。例如,可以在FormatConditions列表中添加条件格式化规则,然后在Appearance属性中设置对应的样式。 5. 保存样式后,关闭Designer界面即可看到效果。 下面是一段示例代码,演示如何在GridView中实现单元格文字颜色的动态变化: ```csharp private void gridView1_CustomDrawCell(object sender, DevExpress.XtraGrid.Views.Base.RowCellCustomDrawEventArgs e) { if (e.Column.FieldName == "Status") { string status = e.CellValue.ToString(); if (status == "OK") { e.Appearance.ForeColor = Color.Green; } else if (status == "Warning") { e.Appearance.ForeColor = Color.Yellow; } else if (status == "Error") { e.Appearance.ForeColor = Color.Red; } } } ``` 这段代码在GridView的CustomDrawCell事件中,判断当前单元格的列名是否为“Status”,如果是,则根据单元格的值来设置不同的字体颜色。可以根据自己的需求修改相应的代码。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fyhs

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值