CSkin博客

标题: datagridview二维表头,滚动后字糊了 [打印本页]

作者: yyxf    时间: 2015-7-14 13:48
标题: datagridview二维表头,滚动后字糊了
本帖最后由 yyxf 于 2015-7-14 13:55 编辑

http://bbs.cskin.net/forum.php?m ... hlight=datagridview 新人,正好需要做一个二维表头,在论坛看到有这个资源就下了(第一个demo),用了一下效果实现了。

可是,滚动条一滚动,再拉回来的时候表头就糊了(始终在显示范围内的不会糊)

我看到这个demo中有写滚动时重绘的事件,可是运行时拉动滚动条事件并没有被触发。请各位帮忙看看该怎么解决,拜托了。




作者: 乔克斯    时间: 2015-7-14 14:21
@xiaobo
这个控件的无参构造函数中试试加入双缓冲代码。
[C#] 纯文本查看 复制代码

            this.SetStyle(ControlStyles.DoubleBuffer, true);
            this.SetStyle(ControlStyles.AllPaintingInWmPaint, true);
            this.SetStyle(ControlStyles.UserPaint, true);
            this.SetStyle(ControlStyles.SupportsTransparentBackColor, true);
            //this.SetStyle(ControlStyles.StandardDoubleClick, false);
            this.SetStyle(ControlStyles.Selectable, true);
            this.UpdateStyles();

作者: yyxf    时间: 2015-7-14 19:31

public partial class RowMergeView : DataGridView
    {
        #region 构造函数
        public RowMergeView()
        {
            InitializeComponent();
            this.SetStyle(ControlStyles.DoubleBuffer, true);
            this.SetStyle(ControlStyles.AllPaintingInWmPaint, true);
            this.SetStyle(ControlStyles.UserPaint, true);
            this.SetStyle(ControlStyles.SupportsTransparentBackColor, true);
            //this.SetStyle(ControlStyles.StandardDoubleClick, false);
            this.SetStyle(ControlStyles.Selectable, true);
            this.UpdateStyles();
        }

是这样吗?我试了一下,好像还是一样的
作者: 乔克斯    时间: 2015-7-14 21:41
yyxf 发表于 2015-7-14 19:31
public partial class RowMergeView : DataGridView
    {
        #region 构造函数

那就是本身组件的BUG了。。。
作者: yyxf    时间: 2015-7-14 21:54
了解了,谢谢乔老师指点
作者: xiaobo    时间: 2015-7-22 23:15
我这边测试是正常的,把程序贴出来看看?


作者: yyxf    时间: 2015-9-7 21:54
本帖最后由 yyxf 于 2015-9-7 21:58 编辑

不好意思,这阵子埋头写代码,只偶尔签到,刚刚看到您的回复。

当时因为一直弄不好,这段代码我好像是放弃掉了,刚刚找了半天也没找见。但是我自己试验的结果应该是:如果合并单元格的范围是一开始就出现在屏幕范围的话,效果是能实现而且拉动也不会糊的,就如同demo展示的效果一样;要合并的单元格比较多的话,效果就不能保证了。
不知道有没有其他的合并单元格比较方便的第三方控件可以推荐?

谢谢

作者: 斯盖    时间: 2015-9-24 09:55
我貌似也遇到这问题了、。、、、是控件原因吗?
作者: 乔克斯    时间: 2015-9-24 10:31
yyxf 发表于 2015-9-7 21:54
不好意思,这阵子埋头写代码,只偶尔签到,刚刚看到您的回复。

当时因为一直弄不好,这段代码我好像是放弃 ...

ReoGridSourceGrid 这2个开源组件可以去了解下。
作者: 乔克斯    时间: 2015-9-24 10:31
斯盖 发表于 2015-9-24 09:55
我貌似也遇到这问题了、。、、、是控件原因吗?

ReoGridSourceGrid 这2个开源组件可以去了解下。
作者: 斯盖    时间: 2015-9-24 10:32
乔克斯 发表于 2015-9-24 10:31
ReoGrid 和 SourceGrid 这2个开源组件可以去了解下。

好的  谢了
作者: yyxf    时间: 2016-2-14 12:37
乔克斯 发表于 2015-9-24 10:31
ReoGrid 和 SourceGrid 这2个开源组件可以去了解下。

恩,是正在用SourceGrid,谢谢啦




欢迎光临 CSkin博客 (http://bbs.cskin.net/) Powered by Discuz! X3.2