找回密码
 立即注册

QQ登录

只需一步,快速开始

lrjnew

注册会员

10

主题

27

帖子

87

积分

注册会员

积分
87

活字格认证

lrjnew
注册会员   /  发表于:2014-8-27 09:10  /   查看:7523  /  回复:5
我使用Spread WinFrom 拖动行,若表格中没有数据,拖动操作估计半秒左右就有响应,但是,如果表格中有数据,拖动操作大概需要2秒到3秒之间才响应,如果表格的列再多一点,估计拖动的响应更慢,有没有什么方法可以优化一下呢?

1.png

5 个回复

倒序浏览
iceman
社区贡献组   /  发表于:2014-8-27 17:49:00
沙发
回复 1楼lrjnew的帖子

请问您使用的是 Spread 哪个版本?我使用 Spread 7.0V4,没有重现这个问题。
或者你可以通过关闭动画显示提升性能:

  1. private void Form1_Load(object sender, EventArgs e)
  2.         {
  3.             DataTable dt = new DataTable();
  4.             for (int i = 0; i < 30; i++)
  5.             {
  6.                 dt.Columns.Add("col"+ i.ToString());
  7.             }
  8.             for (int i = 0; i < 100; i++)
  9.             {
  10.                 string test=i.ToString();
  11.                 dt.Rows.Add(test, test, test, test, test, test, test, test, test, test, test, test, test, test,
  12.                     test, test, test, test, test, test, test, test, test, test, test, test, test, test, test, test);
  13.             }
  14.             this.fpSpread1.DataSource = dt;
  15.             this.fpSpread1.AllowRowMove = true;
  16.             this.fpSpread1.AllowRowMoveMultiple = true;
  17.             this.fpSpread1.RowDragMove += fpSpread1_RowDragMove;
  18.             this.fpSpread1.RowDragMoveCompleted += fpSpread1_RowDragMoveCompleted;
  19.         }

  20.         void fpSpread1_RowDragMoveCompleted(object sender, FarPoint.Win.Spread.DragMoveCompletedEventArgs e)
  21.         {
  22.             this.fpSpread1.ResumeLayout();
  23.         }

  24.         void fpSpread1_RowDragMove(object sender, FarPoint.Win.Spread.DragMoveEventArgs e)
  25.         {
  26.             this.fpSpread1.SuspendLayout();
  27.         }
复制代码


为了给你提供更优质的服务,请对本次服务进行评分。我们会认真对待你提出的宝贵意见,谢谢
回复 使用道具 举报
lrjnew
注册会员   /  发表于:2014-8-28 14:31:00
板凳
回复 2楼iceman的帖子

我是WIN FORM 5.0版本的,我重新测试了一下,发现跟表格的区域大小有关系,如果你把表格的填充到窗体,并且把窗体最大化,表格中的列总宽度超过表格的宽度,就会出现响应慢的情况了.

如下图,窗体没有最大化,显示出来的表格的区域不是很大,这时候拖动就会反应很快,但是一旦把窗体最大化了,表格的区域随着窗体变大,这时候拖动就会变得慢了。
飞信截图20140828142635.png
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2014-8-28 17:56:00
地板
回复 3楼lrjnew的帖子

原因应该是在拖动时 Spread 会进行大量的重绘工作,可以使用 2# 中的代码关闭动画效果看是否能提升性能。

Spread 7.0 针对 5.0 做了很多性能优化,可以现在测试,考虑产品升级:
http://www.gcpowertools.com.cn/d ... SpreadforWin7v4.zip
回复 使用道具 举报
lrjnew
注册会员   /  发表于:2014-9-1 17:00:00
5#
回复 4楼iceman的帖子

OK,非常感谢!
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2014-9-1 18:06:00
6#
回复 5楼lrjnew的帖子

好的,不客气
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部