任何人都能在这方面提供帮助的可能性很小,但现在开始吧。我继承了一个带有Janus GridEX控件的VB6应用程序。它遍历记录,并且是可编辑的。问题是,如果我编辑一个单元格并单击按钮转到下一条记录,更改将应用于下一条记录,而不是我正在编辑的那条记录。这就像,我需要它在转到下一个记录之前完成编辑。我以前在VC++中遇到过这样的问题,有时你不得不在你所在的控件上"KillFocus“或者别的什么。我只是不知道在这里该做些什么。我尝试发送回车符,因为如果您返回编辑单元格,它可以工作,但手动发送回车符不起作用。秘诀是什么?
发布于 2009-04-20 15:20:21
您的网格是绑定的还是未绑定的?
很难从你的描述中辨别出来,但我想如果你有这个问题,那么它可能是有限制的。
正如另一个答案所问的,按钮是内置在控件中的RecordNavigator,还是一个单独的按钮?我之所以再次提出这个问题,是因为我在我支持的VB6应用程序中看到了一些问题,在这些应用程序中,工具栏经常会拦截并干扰JanusGrid的工作方式。
为了绕过这一限制,我在窗体上有JanusGrid控件的所有工具栏的单击处理程序中添加了以下代码。
如果为jsgxYourGridName.EditMode = jgexEditModeOn,则为jsgxYourGridName.Update
这样,任何更改都会立即应用到当前行。
如果这没有帮助,那么我也看到了绑定到网格的记录集与网格中的内部记录集不同步的问题。您可以通过比较网格的书签和记录集的书签来检查这一点。
即。mrsYourRecordset.Bookmark = jsgxYourGrid.ADORecordset.Bookmark
在某种程度上,我可能也使用过这样的东西。
jsgxYourGrid.ADORecordset.Bookmark = jsgxYourGrid.RowBookmark(jsgxYourGrid.RowIndex(jsgxYourGrid.Row))最后,您可以尝试在网格的BeforeUpdate、RowColChange和/或AfterColUpdate事件中设置断点,以便在单击按钮时查看网格的真实记录。
发布于 2009-04-07 20:22:05
这取决于按钮是否在Janus GridEX的内部。如果它是内部的,那么你唯一能做的就是查看控件公开的事件,看看是否有一个序列可以让你知道发生了这个问题。然后,您可以尝试采取更正操作,方法是恢复移动到的行,并将编辑放到您离开的行中。
如果按钮位于Janus的外部,则可以使用调试模式跟踪控制焦点转移到下一行的语句序列。它可能是一些无序的东西,或者是特定命令序列的副作用。我用不同的控件遇到了这两种情况。
请记住,您可以在调试模式下进行编辑,因此您可以尝试不同的方法并进行测试,直到找到一种有效的方法为止。
https://stackoverflow.com/questions/726965
复制相似问题