Previous topicNext topic
Help > 开发指南 > SanMuGrid平台编程 > 主要对象 > BaseGrid > 方法 >
定位
方法名称 分类 说明
Focus 定位 激活当前表格。
HitTest 定位 根据指定的X、Y坐标获得相应区域属于哪种类型。
IsInDataZone 定位 判断一个行号是否在数据区域内。
IsCellInDataArea 定位 判断指定单元格是否属于数据区域
GetCellRange 选区 获得一个单元格区域。
Select 选区 选择一个单元格或一个区域。
ShowCell 定位 将单元格滚动到当前可以看到的位置。

Vb.Net
Dim tbl As SmGrid=Proj.CurrentSmGrid
'一、区域选择并定位
'选择指定单元格,第一个参数为行号,第二个参数为列号
tbl.Select(2,3)
'选择数据区域第一个单元格
tbl.Select(tbl.Rows.Fixed,tbl.Cols.Fixed)
'第三个参数,可以控制是否同时移动位置,让选择单元格展示在控件可见区域,让用户可以直接看到
tbl.Select(tbl.Rows.Fixed,tbl.Cols.Fixed,True)
'如果我们想选择了某个区域,但是也不希望表格跳转显示它,就可以设置第三个参数为False。如果不设置第三个参数的话,跟设置为True的效果一致。
tbl.Select(tbl.Rows.Fixed,tbl.Cols.Fixed,False)
'选择一个区间范围,从第一个单元格开始,向下多选择2行,向右再多选择3列,共3行4列
tbl.Select(tbl.Rows.Fixed,tbl.Cols.Fixed,tbl.Rows.Fixed+2,tbl.Cols.Fixed+3)

'二、定位
'定位到指定单元格
tbl.ShowCell(1,1)
'我们还可以通过下面的方式定位
tbl.LeftCol=tbl.Cols.Fixed
'定位到最右边
tbl.RightCol=tbl.Cols.Count-1
'定位到最顶端
tbl.TopRow=tbl.Rows.Fixed

'如果两个表相同步定位的话,比如主表与副表之间的同步就可以用下面的方法
'可以考虑放在表AfterScroll事件中去
tbl.ScrollPosition=tbl.SourceSmGrid.ScrollPosition

C#
SmGrid tbl = Proj.CurrentSmGrid;
// 一、区域选择并定位
// 选择指定单元格,第一个参数为行号,第二个参数为列号
tbl.Select(2, 3);
// 选择数据区域第一个单元格
tbl.Select(tbl.Rows.Fixed, tbl.Cols.Fixed);
// 第三个参数,可以控制是否同时移动位置,让选择单元格展示在控件可见区域,让用户可以直接看到
tbl.Select(tbl.Rows.Fixed, tbl.Cols.Fixed, true);
// 如果我们想选择了某个区域,但是也不希望表格跳转显示它,就可以设置第三个参数为False。如果不设置第三个参数的话,跟设置为True的效果一致。
tbl.Select(tbl.Rows.Fixed, tbl.Cols.Fixed, false);
// 选择一个区间范围,从第一个单元格开始,向下多选择2行,向右再多选择3列,共3行4列
tbl.Select(tbl.Rows.Fixed, tbl.Cols.Fixed, tbl.Rows.Fixed + 2, tbl.Cols.Fixed + 3);

// 二、定位
// 定位到指定单元格
tbl.ShowCell(1, 1);
// 我们还可以通过下面的方式定位
tbl.LeftCol = tbl.Cols.Fixed;
// 定位到最右边
tbl.RightCol = tbl.Cols.Count - 1;
// 定位到最顶端
tbl.TopRow = tbl.Rows.Fixed;

// 如果两个表相同步定位的话,比如主表与副表之间的同步就可以用下面的方法
// 可以考虑放在表AfterScroll事件中去
tbl.ScrollPosition = tbl.SourceSmGrid.ScrollPosition;