各位前辈:    请教一下我在一个窗体中用了一个MSHFlexgrid控件,我现在想实现按了键盘上的四个方向键中其中一个,对应的滚动条自动移动一个单元格位置,不知如何实现(说明:是MSHFlexgrid控件内部的滚动条,不是窗体的),烦请知悉的前辈指点一下,谢谢

解决方案 »

  1.   

    用.showcell属性
    下:fg.showcell(fg.row+1,fg.col)
    上:fg.showcell(fg.row-1,fg.col)
    左:fg.showcell(fg.row+1,fg.col-1)
    右:fg.showcell(fg.row+1,fg.col+1)
    当到边界时不能再移动,防错自己加
      

  2.   

    liuqingqi前辈:   我查找了一个MSHFlexgrid控件的属性和方法,没有你提到的showcell方法,不知你用的是哪个版本,烦请再次指点
      

  3.   

    Scroll 方法在一个简单操作中水平或垂直地滚动 DataGrid 控件。不支持命名参数。应用于DataGrid控件常量,DataGrid控件。语法object.Scroll colvalue, rowvalueScroll 方法的语法包含下列部分:部分描述object对象表达式,其值是“应用于”列表中的对象colvalue必需的。长数值表达式,指定控件中的某列rowvalue必需的。长数值表达式,指定控件中的某行说明正值往右下方滚动。负值往左上方滚动。超出范围的值不会产生错误桪ataGrid 控件可滚到最大级。通过设置 FirstRow 和 LeftCol 属性可以得到同样效果,但它们必须独立设置,且引起两个单独的 Paint 事件。请参阅FirstRow属性。示例本例创建两个使用户能够沿对角线滚动的按钮,一是向右下移动,二是向左上移动。
    Sub ScrollDownRight_Click   ' 向右下滚动。
       DataGrid1.Scroll DataGrid1.VisibleCols, DataGrid1.VisibleRows
    End SubSub ScrollUpLeft_Click   ' 向左上滚动。   
       DataGrid1.Scroll -DataGrid1.VisibleCols, -DataGrid1.VisibleRows
    End SubScr
      

  4.   

    修改TopRow、LeftCol属性应该能满足你的要求。
      

  5.   

    看错控件,拷错代码……
     TopRow 属性 (MSHFlexGrid)
          返回或设置 MSHFlexGrid 中最上面的可视行(不是固定行)。这一属性在设计时不可用。语法object.TopRow [=number]TopRow 属性的语法包含如下部分:部分 描述
    object 一个对象表达式,其值为“应用于”列表中的一个对象。
    number 一个 Long值,指定 MSHFlexGrid 中最上面的行。
    说明可以使用这一属性编程来读或设置 MSHFlexGrid 的可视的顶行。使用 LeftCol 属性决定 MSHFlexGrid 中最左边的可视列。当设置 TopRow 时可以使用的最大行号是总行数减去在 MSHFlexGrid 中可视的行数。如果这一属性被设置为一个更大行号,MSHFlexGrid 将重新把它设置为这个可能的最大值。