DataBindingSource CancelEdit

Posted on 2009-06-29
Medium Priority
Last Modified: 2012-06-27

I have a form that has about 10 different controls (such as textboxes and comboboxes).  When the user attempts to BindingSource.MoveNext or BindingSource.MovePrevious, it checks to see if any changes were made and if so a MsgBox appears with "Yes", "No", or "Cancel".  When the user clicks "No" I call BindingSource.CancelEdit and DataSet.RejectChanges.  My problem comes when the user returns to the record and it still displays all the previous entered data (that was rejected).  How do I refresh that data, so it returns to the original values.

So for example:  The form loads and the first textbox contains "Value1".  I then change that to "Value2".  I move records, and when requested wether to save the data or not, i choose "No".  I then move back to the record I was just working on, but despite cancelling the edit and rejecting the changes the first textbox is still set to "Value2" - How do i set it so it's "Value1" instead?

Open in new window

Question by:Gunit2507
LVL 12

Accepted Solution

wht1986 earned 2000 total points
ID: 24742685
Well I ran a quick example, but I did not have this problem.  My form has a typed dataset, 4 textboxes, and a binding source (as shown in the picture).  The code below after prompting, rejects or accepts the changes and moves the CurrentPosition. Perhaps you can see something your code is missing from the example
Imports System.IO
Imports System.DirectoryServices
Imports System.Linq
Imports System.Data.Linq
Imports System.Management
Public Class Form1
    Private oldPosition As Integer = -1
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        DataSet11.DataTable1.AddDataTable1Row("hello", "Bob", "Bobson")
        DataSet11.DataTable1.AddDataTable1Row("goodbye", "Michael", "Jackson")
        DataSet11.DataTable1.AddDataTable1Row("hail", "fellow", "adventurer")
    End Sub
    Private Sub BindingSource1_PositionChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BindingSource1.PositionChanged
        If oldPosition > -1 Then
            If DataSet11.DataTable1.Rows(oldPosition).RowState = DataRowState.Modified Then
                If (MessageBox.Show(Me, "Accept?", "", MessageBoxButtons.YesNo) = Windows.Forms.DialogResult.No) Then
                    BindingSource1.Position = oldPosition
                End If
            End If
        End If
        oldPosition = BindingSource1.Position
    End Sub
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    End Sub
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    End Sub
End Class

Open in new window


Author Closing Comment

ID: 31598211
After spending about an hour researching this "problem" and then finally giving up and asking experts exchange to only find out I wasn't calling my code because the button handle event was incorrect.  Thanks a lot!

Featured Post

Get your problem seen by more experts

Be seen. Boost your question’s priority for more expert views and faster solutions

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

The debugging module of the VB 6 IDE can be accessed by way of the Debug menu item. That menu item can normally be found in the IDE's main menu line as shown in this picture.   There is also a companion Debug Toolbar that looks like the followin…
Article by: Martin
Here are a few simple, working, games that you can use as-is or as the basis for your own games. Tic-Tac-Toe This is one of the simplest of all games.   The game allows for a choice of who goes first and keeps track of the number of wins for…
Get people started with the process of using Access VBA to control Excel using automation, Microsoft Access can control other applications. An example is the ability to programmatically talk to Excel. Using automation, an Access application can laun…
This lesson covers basic error handling code in Microsoft Excel using VBA. This is the first lesson in a 3-part series that uses code to loop through an Excel spreadsheet in VBA and then fix errors, taking advantage of error handling code. This l…
Suggested Courses

587 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question