删除以后,鼠标随意滑动经过时,经过的grid cell都出现被select的状态。
动态删除列的代码如下:
AdvStringGrid1.MoveColumn(CurrentCol, AdvStringGrid1.ColCount -1);
AdvStringGrid1.ColCount := AdvStringGrid1.ColCount - 1;

解决方案 »

  1.   

    典型的设计问题,
    界面和数据搅在一起,控制起来怎么会不出问题。
    我们也用stringgrid,从来不会出现这种情况,首先问你一下,你的grid显示的是什么数据?你在显示的时候把数据准备好了吗?如果准备好了数据,调用一下写grid的函数重新写grid,还会有这种问题?
    看看设计模式这本书
      

  2.   

    多谢楼上指点!如果要改,确实应该改grid的函数。我用的advancestringgrid.tms出的控件。后来:
    我把动态删除列的方法换了一下:直接用mergecolumn,让那个该删除的被合并掉,就解决了。
    再次感谢热心指点。
      

  3.   

    多句嘴,现在很多人都在说要学设计模式,但是有多少真正理解呢?我记不清模式的名字,但其中有一个就是界面上画面和数据的分离,看了你修改的方法,似乎并没有根本解决问题。
    我们现在做的程序,数据表示都是使用stringgrid,怎么做呢?创建一个内存列表,把数据准备好,写一个从列表里把数据循环向grid里面写的函数。所有的增删改都只修改内部的数据,最后重新写grid就可以了。这样还会出你那样的问题吗?
      

  4.   

    请问用什么内存列表呢?我用的是clientdataset,不知道你说的内存列表是不是类似的dataset之类?
      

  5.   

    呵呵,用dataset也算,我们现在的软件都不用dataset,数据库的记录取出来都放在记录里面,用TList连接