找回密码
 立即注册

QQ登录

只需一步,快速开始

gengwh
论坛元老   /  发表于:2013-6-4 10:07  /   查看:5237  /  回复:3
winform7下清空spread内容,特别慢,画面会卡好一会。数据差不多有500条。写法如下:
objSpdObj.ClearRange(0, 0, 500, 24, False);
请问该怎么优化?

3 个回复

倒序浏览
iceman
社区贡献组   /  发表于:2013-6-4 12:27:00
沙发
回复 1楼gengwh的帖子

请问你那边的测试时间是多少?
在我的机器上使用时间为:00:00:00.1858036。
测试代码如下:


  1. private void Form1_Load(object sender, EventArgs e)
  2.         {
  3.             DataTable dt = new DataTable();

  4.             for (int i = 1; i < 25; i++)
  5.             {
  6.                 dt.Columns.Add("第"+i.ToString()+"列");
  7.             }

  8.             for (int i = 0; i < 500; i++)
  9.             {
  10.                 dt.Rows.Add("test", "test", "test", "test", "test", "test", "test", "test", "test", "test", "test", "test", "test", "test", "test", "test", "test", "test", "test", "test", "test", "test", "test", "test");
  11.             }

  12.             this.fpSpread1.DataSource = dt;

  13.         }

  14.         private void clearRangeToolStripMenuItem_Click(object sender, EventArgs e)
  15.         {
  16.             Stopwatch st = new Stopwatch();
  17.             st.Start();  
  18.             fpSpread1.SuspendLayout();
  19.             fpSpread1.Sheets[0].ClearRange(0, 0, 500, 24, false);
  20.             fpSpread1.ResumeLayout();
  21.             st.Stop();
  22.             MessageBox.Show(st.Elapsed.ToString());
  23.         }
复制代码
回复 使用道具 举报
gengwh
论坛元老   /  发表于:2013-6-4 12:52:00
板凳
00:00:00.37664。
弹出这个框之后,会卡那么一段时间,
也不知道是什么原因。。
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-6-4 18:31:00
地板
回复 3楼gengwh的帖子

gengwh 你好,
请问你那边如果不弹出框,还会卡么?

  1. private void clearRangeToolStripMenuItem_Click(object sender, EventArgs e)
  2.         {
  3.             Stopwatch st = new Stopwatch();
  4.             st.Start();  
  5.             fpSpread1.SuspendLayout();
  6.             fpSpread1.Sheets[0].ClearRange(0, 0, 500, 24, false);
  7.             fpSpread1.ResumeLayout();
  8.             st.Stop();
  9.             //MessageBox.Show(st.Elapsed.ToString());
  10.         }

  11.         private void setDataToolStripMenuItem_Click(object sender, EventArgs e)
  12.         {
  13.             DataTable dt = new DataTable();

  14.             for (int i = 1; i < 25; i++)
  15.             {
  16.                 dt.Columns.Add("第" + i.ToString() + "列");
  17.             }

  18.             for (int i = 0; i < 500; i++)
  19.             {
  20.                 dt.Rows.Add("test", "test", "test", "test", "test", "test", "test", "test", "test", "test", "test", "test", "test", "test", "test", "test", "test", "test", "test", "test", "test", "test", "test", "test");
  21.             }

  22.             this.fpSpread1.DataSource = dt;
  23.         }
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部