将 datagridview的 行标题头 隐藏了。   将第一列设为序号列了。   然后,在rowadd 事件中,为每一行 的序号列 加上行索引。   现在问题来了,我绑定到数据源后,数据源newrow 一个新行。   如果我一开始把垂直滚动条放在最上面, 无论加多少新行,都是没问题。   但如果我把滚动条已经拉到最下面 去看最末一行,那么,当新增加的行超过了表格控件本身区域的话,  再看到的,就显示不正常了。
最后一行,就会重复。比如到了30行,就会有2个甚至3个序号为30的行。
    但是,这些重复的行,一般最下面的那个又是无效的。就是你看的见,但无法操作。从获取控件行数来看,控件确实也只有30行。但显示就会多显示一行两行的。
    开始以为是绘制刷新的问题,可手动调用了刷新方法,也不管用。 
   哦 对了,我的垂直滚动条是自己加的,不是用的控件自身的那个。 因为要把这个控件和其他的一个显示内容做同步。所以自己加了一个。

解决方案 »

  1.   

    折腾了一个下午   问题越来越奇怪了   经过修改后    直接的add() 添加到末尾的行   没任何问题了。 怎么添加都可以。  如果是insertat()  添加到指定索引。  就还是老样子。  不过,还有个奇怪的现象。     insertat时, 如果当前显示的第一行 就是索引为0的第一行。  那么 这种添加也没问题。但如果当前显示的第一行  不是索引为0的话,就出现老问题了。   做删除时,同样。当前显示第一行为索引0行时, 删除第几行都正常。但不是的情况下,最后一行的显示又不正常了。