zhuliwangfen 发表于 2013-3-12 14:49:00

滚动条拉到最下面和最右边的时候,能不能让单元格铺满而不是只保留一行一列

当我把两个滚动条都拉到底的时候,数据区会只保留一行一列,能否设置不保留一行一列,而是铺满整个数据区?

Zoe 发表于 2013-3-12 17:48:00

回复 1楼zhuliwangfen的帖子

你试试看下面的代码是否满足你的需求。

int i, j; // i 表示能滚动的最后一行, j 表示能滚动的最后一列      
      
            // 获取能滚动的最后一行和最后一列
            this.gcSpreadSheet1.ActiveSheet.ActiveColumnIndex = 99;
            this.gcSpreadSheet1.ActiveSheet.ActiveRowIndex = 499;
            this.gcSpreadSheet1.ShowActiveCell(GrapeCity.Windows.SpreadSheet.UI.VerticalPosition.Bottom, GrapeCity.Windows.SpreadSheet.UI.HorizontalPosition.Right);

            i = this.gcSpreadSheet1.GetViewportTopRow(this.gcSpreadSheet1.GetActiveRowViewportIndex());
            j = this.gcSpreadSheet1.GetViewportLeftColumn(this.gcSpreadSheet1.GetActiveColumnViewportIndex());         
      

      private void gcSpreadSheet1_LeftColumnChanged(object sender, GrapeCity.Windows.SpreadSheet.UI.ViewportEventArgs e)
      {
         if (j!=0 &&e.NewIndex > j)
            {
                this.gcSpreadSheet1.SetViewportLeftColumn(this.gcSpreadSheet1.GetActiveColumnViewportIndex(), j);
            }
            
      }

      private void gcSpreadSheet1_TopRowChanged(object sender, GrapeCity.Windows.SpreadSheet.UI.ViewportEventArgs e)
      {
            if (i != 0 && e.NewIndex > i)
            {
                this.gcSpreadSheet1.SetViewportTopRow(this.gcSpreadSheet1.GetActiveRowViewportIndex(), i);
            }
      }

zhuliwangfen 发表于 2013-3-13 10:02:00

回复 2楼Zoe的帖子

谢谢你的回答这确实是我要的,但是还是会空出一些距离,能不能让单元格正好顶到边上。
或者像Excel2010一样有“数据跟踪机制”
1:当超出控件显示范围的单元格没有数据时,滚动条就直接以控件大小为拖拽可达范围
2:当超出控件显示范围的单元格有数据时,滚动条以数据的最后一 行/列为拖拽可达范围

Zoe 发表于 2013-3-13 14:48:00

回复 3楼zhuliwangfen的帖子

>>能不能让单元格正好顶到边上。
这个你需要自己算出来空白区域,调整下最后一列的宽度和最后一行的高度来铺满。

>>1:当超出控件显示范围的单元格没有数据时,滚动条就直接以控件大小为拖拽可达范围
>>2:当超出控件显示范围的单元格有数据时,滚动条以数据的最后一 行/列为拖拽可达范围
这个需要你算出显示数据范围的TopRow 和LeftColumn, 然后赋值给上面代码的i和J来调整。
获取有数据的单元格可以用下面的方法。

this.gcSpreadSheet1.ActiveSheet.GetLastDirtyRow(GrapeCity.Windows.SpreadSheet.Data.StorageType.Data);

this.gcSpreadSheet1.ActiveSheet.GetNonEmptyColumns();

zhuliwangfen 发表于 2013-3-13 14:55:00

回复 4楼Zoe的帖子

>>能不能让单元格正好顶到边上。
这个你需要自己算出来空白区域,调整下最后一列的宽度和最后一行的高度来铺满。
谢谢!
      那么可以在不调整行和列宽高的情况下达到效果吗?
      像微调滚动条一样,现在滚动条每次移动都是移动一个单元格高/宽的距离,我想调用一个方法直接微调到至“顶到边上”可以吗?

Zoe 发表于 2013-3-13 15:50:00

回复 5楼zhuliwangfen的帖子

目前产品还不支持这个功能,在后续版本中我们会考虑支持这个功能。

zhuliwangfen 发表于 2013-3-13 16:44:00

回复 6楼Zoe的帖子

好的,谢谢
页: [1]
查看完整版本: 滚动条拉到最下面和最右边的时候,能不能让单元格铺满而不是只保留一行一列