开发者论坛

 找回密码
 注册 (请使用非IE浏览器)
查看: 26598|回复: 67

关于DevExpress GridView行头显示行号且根据行号宽度动态自适...

  [复制链接]

0

精华

490

贡献

762

赞扬

管理员

Rank: 45Rank: 45Rank: 45Rank: 45Rank: 45

帖子
158
软币
3876
在线时间
580 小时
注册时间
2015-6-30
发表于 2019-6-5 11:31:41 | 显示全部楼层 |阅读模式
本帖最后由 rzt_tao 于 2019-6-5 11:44 编辑

GridView的行头号默认没有显示,需要在事件CustomDrawRowIndicator中绘制行头号,行号显示代码如下
游客,如果您要查看本帖隐藏内容请回复

GridView默认的行头宽度较小,往往都需要设置GridView.IndicatorWidth属性来设置宽度,但是这个宽度是固定的,如果列表数据较大,设置小了后面的数据行号就会显示不全,如果设置较大,比如有1w行,那么在浏览前面的数据的时候会觉得显示太宽,不符合设计美观,着实让人别扭,如果可以动态的根据当前的行号大小来决定其行头 的宽度的话,那就perfect了。接下来让我来介绍实现步骤:

GridView提供TopRowChanged事件,当数据滚动的时候,就会触发到这个事件,那么我们就可以利用这个事件在滚动数据的时候来计算此时的显示的最大行号,进而来计算出该最大行号的宽度,计算宽度如下:
[C#] 纯文本查看 复制代码
void CustomDrawRowIndicator (object sender, RowIndicatorCustomDrawEventArgs e)
            {
                if (e.RowHandle >= 0)
                {
                    e.Info.DisplayText = (e.RowHandle + 1).ToString();
                }
            }


那么TopRowChanged事件可以这么写:
[C#] 纯文本查看 复制代码
/// <summary>
        /// 计算行头宽度
        /// </summary>
        /// <param name="sender"></param>
        /// <returns></returns>
        int CalcIndicatorBestWidth(DevExpress.XtraGrid.Views.Grid.GridView view)
        {
            Graphics graphics = new Control().CreateGraphics();
            SizeF sizeF = new SizeF();
            int count = view.TopRowIndex + ((DevExpress.XtraGrid.Views.Grid.ViewInfo.GridViewInfo)view.GetViewInfo()).RowsInfo.Count;
            if (count == 0)
            {
                count = 30;
            }
            sizeF = graphics.MeasureString(count.ToString(), view.Appearance.Row.Font);
            return Convert.ToInt32(sizeF.Width) + 20;
        }

为了方便大家复制黏贴,请查看以下代码复制黏贴到你的项目内,在构造函数内调用,传个gridview的参数即可
游客,如果您要查看本帖隐藏内容请回复

效果图:
行头宽度.gif

源代码下载 (源码多余,土豪随意)

评分

参与人数 4贡献 +20 软币 +100 赞扬 +13 收起 理由
yezi9527 + 1 很给力
psober + 1 赞一个
羽叶 + 20 + 10 赞一个
vsren + 100 + 1 很给力

查看全部评分

回复

使用道具 举报

0

精华

518

贡献

401

赞扬

正版授权组

Rank: 14Rank: 14Rank: 14Rank: 14

帖子
213
软币
7221
在线时间
1177 小时
注册时间
2013-6-9
发表于 2019-6-5 11:39:26 | 显示全部楼层
很好 正好需要 感谢涛神分享
回复

使用道具 举报

0

精华

0

贡献

73

赞扬

帖子
23
软币
310
在线时间
18 小时
注册时间
2017-1-7
发表于 2019-6-5 14:26:22 | 显示全部楼层
看看这个是怎么弄的,自己弄的不好
回复

使用道具 举报

0

精华

0

贡献

6

赞扬

帖子
4
软币
89
在线时间
1 小时
注册时间
2019-6-10
发表于 2019-6-10 21:46:38 | 显示全部楼层
感谢楼主分享经验
回复

使用道具 举报

0

精华

0

贡献

947

赞扬

帖子
88
软币
3077
在线时间
313 小时
注册时间
2017-5-17
发表于 2019-6-12 11:32:30 | 显示全部楼层
很好 正好需要 感谢涛神分享
回复

使用道具 举报

0

精华

0

贡献

3292

赞扬

赞助者组

Rank: 14Rank: 14Rank: 14Rank: 14

帖子
45
软币
8410
在线时间
661 小时
注册时间
2019-5-30
发表于 2019-6-13 14:29:21 | 显示全部楼层
很好 正好需要 感谢涛神分享
回复

使用道具 举报

0

精华

654

贡献

433

赞扬

赞助者组

Rank: 14Rank: 14Rank: 14Rank: 14

帖子
207
软币
3085
在线时间
440 小时
注册时间
2013-7-4
发表于 2019-6-28 14:30:28 | 显示全部楼层
真方便,來來來,我ctrl+v一下
回复

使用道具 举报

0

精华

0

贡献

2624

赞扬

帖子
161
软币
9754
在线时间
938 小时
注册时间
2017-4-18
发表于 2019-6-29 20:45:06 | 显示全部楼层
看起来还不错哦。
回复

使用道具 举报

0

精华

0

贡献

0

赞扬

帖子
39
软币
270
在线时间
29 小时
注册时间
2017-3-4
发表于 2019-7-16 09:50:12 | 显示全部楼层
感谢分享,学习学习
回复

使用道具 举报

0

精华

639

贡献

10

赞扬

帖子
18
软币
143
在线时间
9 小时
注册时间
2017-12-1
发表于 2019-7-16 14:20:28 | 显示全部楼层
好像外面已经写完了
回复

使用道具 举报

0

精华

720

贡献

176

赞扬

赞助者组

Rank: 14Rank: 14Rank: 14Rank: 14

帖子
31
软币
756
在线时间
84 小时
注册时间
2018-11-30
发表于 2019-7-22 17:07:05 | 显示全部楼层
十分需要,参考一下
回复

使用道具 举报

0

精华

0

贡献

28

赞扬

帖子
98
软币
1419
在线时间
173 小时
注册时间
2015-1-25
发表于 2019-7-26 19:38:12 | 显示全部楼层
行头显示行号且根据行号宽度动态自适
回复

使用道具 举报

0

精华

0

贡献

240

赞扬

帖子
19
软币
914
在线时间
109 小时
注册时间
2019-9-17
发表于 2019-9-30 09:30:42 | 显示全部楼层
谢谢分享,正需要
回复

使用道具 举报

0

精华

-12

贡献

39

赞扬

帖子
48
软币
299
在线时间
25 小时
注册时间
2014-11-4
发表于 2019-11-4 23:08:44 | 显示全部楼层
22222222222222222222222222222222222222222222222222222
回复

使用道具 举报

0

精华

36

贡献

33

赞扬

帖子
126
软币
748
在线时间
65 小时
注册时间
2013-6-25
发表于 2019-11-6 13:36:54 | 显示全部楼层

        /// 计算行头宽度
     
回复

使用道具 举报

0

精华

634

贡献

770

赞扬

正版授权组

Rank: 14Rank: 14Rank: 14Rank: 14

帖子
216
软币
2987
在线时间
254 小时
注册时间
2013-7-13
发表于 2019-12-24 22:16:05 | 显示全部楼层
66666,行头显示行号且根据行号宽度动态自适.
回复

使用道具 举报

0

精华

916

贡献

847

赞扬

正版授权组

Rank: 14Rank: 14Rank: 14Rank: 14

帖子
53
软币
2260
在线时间
214 小时
注册时间
2020-2-6
发表于 2020-2-12 11:20:39 | 显示全部楼层
感谢分享,这个很好
回复

使用道具 举报

0

精华

0

贡献

63

赞扬

帖子
117
软币
781
在线时间
87 小时
注册时间
2014-2-13
发表于 2020-2-18 10:23:23 | 显示全部楼层
xue xi le xue xi le
回复

使用道具 举报

0

精华

589

贡献

112

赞扬

赞助者组

Rank: 14Rank: 14Rank: 14Rank: 14

帖子
183
软币
646
在线时间
47 小时
注册时间
2019-12-7
发表于 2020-2-20 08:50:19 | 显示全部楼层
感谢楼主分享经验
回复

使用道具 举报

0

精华

398

贡献

257

赞扬

正版授权组

Rank: 14Rank: 14Rank: 14Rank: 14

帖子
35
软币
580
在线时间
38 小时
注册时间
2018-5-11
发表于 2020-2-26 16:51:05 | 显示全部楼层
都是代码大神,感谢
回复

使用道具 举报

0

精华

0

贡献

0

赞扬

帖子
74
软币
214
在线时间
14 小时
注册时间
2020-1-31
发表于 2020-3-9 14:29:25 | 显示全部楼层
这个更改很重要,窗体大小总经常改变
回复

使用道具 举报

0

精华

0

贡献

220

赞扬

帖子
73
软币
1143
在线时间
126 小时
注册时间
2019-3-30
发表于 2020-3-11 15:15:10 | 显示全部楼层
进来学习学习一下
回复

使用道具 举报

0

精华

0

贡献

5

赞扬

帖子
3
软币
130
在线时间
7 小时
注册时间
2020-3-4
发表于 2020-3-12 11:20:06 | 显示全部楼层
1111111111111111111111111111111
回复

使用道具 举报

0

精华

682

贡献

361

赞扬

正版授权组

Rank: 14Rank: 14Rank: 14Rank: 14

帖子
53
软币
893
在线时间
61 小时
注册时间
2018-1-19
发表于 2020-3-28 23:46:14 | 显示全部楼层
666666666666
回复

使用道具 举报

Archiver|手机版|小黑屋|开发者网 ( 苏ICP备08004430号-2 )
版权所有:南京韵文教育信息咨询有限公司

GMT+8, 2024-12-22 09:25

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表