Janus GridEX问题

时间:2009-04-07 18:15:04

标签: vb6

任何人都可以为此提供帮助,这是一个远景,但是这里有。我继承了一个带有Janus GridEX控件的VB6应用程序。它遍历记录,并且是可编辑的。问题是,如果我编辑一个单元格并点击按钮转到下一条记录,则更改将应用​​于下一条记录,而不是我正在编辑的记录。就像,我需要它来完成编辑才能进入下一条记录。我之前在VC ++中遇到过这种问题,有时你必须在你正在使用的控件上使用“KillFocus”。我只是不知道该怎么做。我尝试发送回车,因为如果你退出编辑单元格,它可以工作,但手动发送回车不起作用。秘密是什么?

2 个答案:

答案 0 :(得分:2)

您的网格是绑定还是未绑定?

很难从你的描述中看出来,但我想如果你遇到这个问题那么它可能会受到约束。

正如另一个答案所说,RecordNavigator是内置在控件中的按钮,还是一个单独的按钮?我再次提出这个问题的原因是,我在VB6应用程序中看到了一些问题,我支持工具栏经常拦截并干扰JanusGrid应该如何工作。

为了解决这个限制,我在任何工具栏的点击处理程序中添加了以下代码,其中表单上还有一个JanusGrid控件。

如果jsgxYourGridName.EditMode = jgexEditModeOn然后jsgxYourGridName.Update

这样,任何更改都会立即应用于当前行。

如果这没有帮助,那么我也遇到了绑定到网格的记录集与网格中的内部记录集不同步的问题。您可以通过将网格书签与记录集的书签进行比较来检查这一点。

IE中。 mrsYourRecordset.Bookmark = jsgxYourGrid.ADORecordset.Bookmark

有一次,我可能也使用过这样的东西。

jsgxYourGrid.ADORecordset.Bookmark = jsgxYourGrid.RowBookmark(jsgxYourGrid.RowIndex(jsgxYourGrid.Row))

最后,您可以尝试在网格的BeforeUpdateRowColChange和/或AfterColUpdate事件中设置断点,以查看点击按钮时网格的实际记录

答案 1 :(得分:1)

这取决于按钮是否在Janus GridEX内部。如果它是内部的那么你可以做的唯一事情是查看控件公开的事件,看看是否有一个序列可以让你知道这个问题发生。然后,您可以尝试通过恢复移动的行并将编辑放在您离开的行中来采取纠正措施。

如果按钮在Janus的外部,那么您可以使用调试模式来跟踪控制焦点转移到下一行的语句序列。它可能是某些故障或特定命令序列的副作用。我遇到了不同的控件。

请记住,您可以在调试模式下进行编辑,这样您就可以尝试不同的方法并进行测试,直到找到有效的方法。