vb的mshflexgrid控件使用问题

来源:百度知道 编辑:UC知道 时间:2024/05/14 11:30:36
新建窗体,在窗体放置一个mshflexgrid控件(命名为item_info),两个命令按钮,其中一个“添加”按钮中写道:item_info.AddItem Empty,用来添加一行。另一“删除”按钮中写道:item_info.RemoveItem (1),用来删除一行。
现在的问题是,首先点击添加,然后定位到表格最后一行,点击删除。再次点击添加,会发现表格并没有添加一行。这是为什么?
首先感谢你的回答。
我没有帮定数据在msh中,因为我在编程中遇到类似这样的问题,现在我是把问题简化了。
我这儿的运行结果是,当第一次点击“添加”按钮时,正常,然后再点击“删除”一行,正常。当回过头再点击一次“添加”时,发现并没有添加,如果继续按第二次,才有了反应。希望你再帮我看看。

我测试你的2行代码,添加和删除功能都正常,你有没有绑定数据在MSH表中呢?

看看MSDN中是怎么说的:

AddItem 方法 (MSHFlexGrid)

该方法将一个行添加到 MSHFlexGrid 控件中。不支持命名参数。

语法

object.AddItem (string, index, number)

AddItem 方法的语法包含以下部分:

部分 描述
object 对象表达式,其值是“应用于”列表中的对象。
item 字符串必需的。字符串表达式,它在新增行中显示。可以用制表符 (vbTab) 来分隔每个字符串,从而将多个字符串(行中的多个列)添加进去。
Index 可选的。Long 类型,它代表了控件中放置新增行的位置。对于第一行来说,index = 0。如果省略 index,那么新增行将成为带区中的最后一行。注意 index 是 MSHFlexGrid 中的 BandColIndex。
number 可选的。Long 值,指出添加行的带区号。

说明如果 MSHFlexGrid 不包含带区(即它被绑定到一个非层次结构类型的 Recordset),那么 BandNumber 参数将是可选的。即使指定了它的值,指定值也必须为 0。如果 BandDisplay 属性被设置为水平的,而 MSHFlexGrid 被绑定到一个分层结构的 Recordset,则 BandNumber 参数将是必需的。如果 BandDisplay 属性被设置为垂直的,那么只有当带区有二义性的时候 BandNumber 参数才是必要的。index 参数永远是可选的。

=======================
注意那个index值,如果省略 index,那么新增行将成为带区中的最后一行。
而后面的说明,
MSHFlexGrid 不包含带区(即它被绑定到一个非层次结构类型的 Recordset)