MDI FOrms

I have a menu, which is the parent, and two forms (search, details) which are mdichildren
In search I have a datagrid that displays the results of the search, when you click in any row, it opens details.
In details, I can add, delete, update...But I want to be able to refresh the grid from detail
Any idea?
IlianamAsked:
Who is Participating?

[Webinar] Streamline your web hosting managementRegister Today

x
 
wguerramConnect With a Mentor Commented:
In your detail form you could add a property Named

Public MyTable as DataTable

so when you call your detail form from your search form you could do this.

Dim f as new MyDetailForm

f.MyTable = MyDataSet.Tables(0)
f.ShowDialog

where MyDataSet is the DataSet in you search form.

Now in your Detail form you have complete access to f.MyTable from Search Table.
This way you can keep your data synchronized.

After you close Detail form you can call your DataGrid.Refresh method.
0
 
wguerramCommented:
You detail from use the same dataset as your search result form?
0
 
IlianamAuthor Commented:
no
0
Upgrade your Question Security!

Your question, your audience. Choose who sees your identity—and your question—with question security.

 
wguerramCommented:
How are you actually populating you grid in search results?
0
 
IlianamAuthor Commented:
It's binded to a dataset. Then I keep the contact_id in a public variable and in my detail I execute an sp which has contact_id as a parameter....Then I populate the fields
0
 
wguerramCommented:
One way would be to make changes to the dataset of your search form from detail form.

But you would have to make double changes.

the other one would be to fill you Dataset throug the DataAdapter, again after you make changes in your detail form.
0
 
Javert93Commented:
You could use events to let the search form know the details have changed. Define an event in your details form:

    Public Event DetailsModified(ByVal sender As Object, ByVal ContactID As Integer)

Then, wire the event when you create the details form:

    Dim frm As New DetailsForm()
    AddHandler frm.DetailsModified, AddressOf MyDetailsHandler


Finally, you raise the event when the user adds, deletes, or updates:

    RaiseEvent DatailsModified(this, m_intContactID)

As a side note, I would create a constructor in your details form to accept the contact_id rather than storing it in a global variable. With your current setup, you can only have one detail form open at a time without introducing logic errors.
0
All Courses

From novice to tech pro — start learning today.