I'm relatively new with VB.net, so please bear with me...
I have a tabpage with 28 textboxes in it. These textboxes will be loaded with data and maybe changed. There is a Save button on the form that will take the data from these textboxes and save them in a SQL database. Right now it saves EVERY time, regardless of what is in the textboxes. I want to save this data ONLY if there has been changes. Is this possible? If it were a dataGrid, a simple .HasChanges could be used, but this is textboxes. Because they are in a tabpage, they are all part of a group.

Any help is much appreciated!

You need to work with the textchanged event of the text box

To detect changes you would need the textchange event below attached to all text boxes.

Public Class Form1
    Private HasChanges As Boolean

    Private Sub LoadTextBoxes()
        'Loading data into text boxes

        'The text would have been changed while loading. So reset the has changes
        HasChanges = False
    End Sub

    Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
        HasChanges = True
    End Sub

    Private Sub Save()
        If HasChanges Then
            'save the data
        End If
    End Sub
End Class

I know this is marked solved, but thought I might add something for thought.

If you databind the text boxes to your underlying datatable, then you can use the datatables "GetChanges" function to determine if anything has changed. You could even use a currency manager to keep everything in sync in the event that the user uses another control to change records. It's not too difficult and saves tons of code-behind.

Regards,
Tony

This question has already been answered. Start a new discussion instead.