如图1:我随便选了三行数据,我想通过上面的添加按钮添加到图二的msflexgrid中

解决方案 »

  1.   

    '在源控件中设置一个“选择”列(如第0列为“选择”列)
    dim i as long
    with hflexgridold
        for i=1 to .rows-1
            if trim(.textmatrix(i,0))="√" then
                hflexgridnew.rows=hflexgridnew.rows+1
                hflexgridnew.textmatrix(hflexgridnew.rows-1,1)=.textmatrix(i,1)
                hflexgridnew.textmatrix(hflexgridnew.rows-1,2)=.textmatrix(i,2)
                hflexgridnew.textmatrix(hflexgridnew.rows-1,3)=.textmatrix(i,3)
            end if
        next i
    end with
      

  2.   

    二楼的回复让我不是很明白,你的trim(.textmatrix(i,0))="√" 是通过什么事件赋值的,是否用SelChange事件,还有,如果用SHIFT一下选多个的时候怎么操作,能否详细一点呢!
      

  3.   

    'mshflexgrid控件用shift多选估计不好处理,可以在单击某行时选中此行来实现:
    private sub mshflexgridold_click()
        with hflexgridold
            if trim(.textmatrix(.row,0))="" then
                '单击此行时没有选中,则改为选中
                .textmatrix(.row,0)="√"
            else
                '单周此行时已经选中,则取消选中
                  .textmatrix(.rows,0)=""
            end if
        end with
    end sub
      

  4.   

    版主,我明白你的意思了,这样可以解决单选的问题,可以按SHIFT就解决不了了,有很多用VB写的软件它确实有用SHIFT多选取值的功能。希望版主看看能否想想有无其它的办法,谢谢了