我创建了一个VB 2008程序来跟踪工作请求。这一切都完美地适用于VISTA盒子,但我在XP环境中遇到了添加新记录的程序问题。
基本上我有两个标签:TAB 1包含一个数据网格视图,其中包含有限的信息和日历。在日历上选择日期会更改datagridview中的信息。 TAB 2在文本/组合框中保存该记录的所有可用信息。 datagridview和文本框都使用相同的Binding Source,因此只要用户从datagridview中选择一行,它们就始终保持同步。当您选择“新建”按钮时,将显示TAB 2,其中所有文本框都为空,以便用户可以添加数据。如果回顾TAB 1,您会看到一个空的新行添加到datagridview(当AllowUserToAdd设置为false时,用户无法在datagridview中直接添加行)。如果您让应用程序在VISTA上保持AddNew记录状态,您将保留该新记录,直到您选择SAVE或CANCEL。但是,在XP上,经过1分钟的时间间隔后,所有空字段最终将填入该特定日历日的现有记录。当你回顾TAB 1时,你不再看到新的空行,你只看到以前保存的现有记录。
关于如何解决的任何想法?感谢您的帮助。
以下是添加新记录的代码:
Private Sub cmdNew_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdNew.Click
'Focus on Work tab
TabControl1.SelectedTab = tabWork
'Change the files from read-only
bEditMode = True
ChangeEditMode()
'Clear the current information stored in the fields
Try
Me.BindingContext(WorkRequestBindingSource).AddNew()
Catch ex As Exception
System.Windows.Forms.MessageBox.Show(ex.Message)
End Try
'Hidden text boxes populate with current selected calendar
'Used to populate TimeIn and DateNeed because if never clicked on, will populate as NULL on save
dtpDateNeed.Text = txtDate.Text
dtpTimeIn.Text = txtTime.Text
End Sub
答案 0 :(得分:1)
这绝对是一个环境问题。要解决这个问题,我需要知道您在每台机器上使用的浏览器以及每台机器上的一些设置。
声音就像XP机器在超时期限后刷新页面并因此重新整理新记录一样。我已经看到过这种情况发生之前它很臭。
您可能需要考虑在视图状态中保存更多状态信息以捕获此类事物。
答案 1 :(得分:0)
如果代码完全相同,我想知道它是否是一个环境问题,例如像不同的国际选项或框架版本?