AD
Administrator
Syncfusion Team
September 16, 2002 05:25 PM UTC
Any technique you might use to access controls in other forms should also be usable in our tabbed mdi.
Could you give a little more info on your scenario? We could then suggest better.
Regards,
Praveen Ramesh
DR
Dadang Rachmad
September 17, 2002 11:36 AM UTC
I include a sample in ZIP format, I hope it can be opened.
I try to make the sample as simple as I could.
Open status windows from the menu personal>status.
Try input a data in the Maintree windows and click the refresh toolbar in the identity windows and status windows.
I want that the refresh is done automatically without clicking the refresh toolbar.
I hope you can understand the sample.
AD
Administrator
Syncfusion Team
September 18, 2002 10:39 AM UTC
Hi,
This is how you could refresh the "Status" form:
1) Listen to the Validated event of the TextBox in the MainTree control. Assuming this is when you want to Refresh. You could do this in your MainForm form.
2) In the event handler, browse through the loaded Child-Forms by parsing the tabbedMDIManager.MdiChildren list. When you find the form of type "Status", get a reference to that Form, casting it to type Status and call a method, say Referesh, for example.
Regards,
Praveen Ramesh
DR
Dadang Rachmad
September 19, 2002 12:19 PM UTC
Thanks for your reply.
But I have some difficulty with point 1 of your answer that may be you can help.
Actually I just beginning rewriting from VB6 to VB.NET.
The most problematic is this logic which is easy in VB6
This is how you could refresh the "Status" form:
1) Listen to the Validated event of the TextBox in the MainTree control. Assuming this is when you want to Refresh. You could do this in your MainForm form.
how??
I try to check the event/handles and found nothing.
the MainTree is in DockingManager.
2) In the event handler, browse through the loaded Child-Forms by parsing the tabbedMDIManager.MdiChildren list.
Private Function tabForm_get(ByVal formName As String) As Form
Dim form As Form
Dim formRet As Form
For Each form In Me.tabbedMDIManager.MdiChildren
If form.Name = formName Then
formRet = form
Exit For
End If
Next
Return formRet
End Function
When you find the form of type "Status", get a reference to that Form, casting it to type Status
Dim form As Form
Dim obj As Object
form = tabForm_get("Status")
obj = CType(form, Status)
and call a method, say Referesh, for example.
obj.refresh ' Refresh must be Public
I have test the point 2 and it seem OK, only the point 1?
AD
Administrator
Syncfusion Team
September 19, 2002 04:24 PM UTC
Hi,
1) When you select the textBox control in the top-left combo-box of your Form source you will see it's events in the top-right combo. You should then pick the Validated event in that list.
It is in this list that you can Refresh the other Form as mentioned in 2).
Regards,
Praveen Ramesh
DR
Dadang Rachmad
September 20, 2002 06:43 AM UTC
Thanks for your patience
I know the event I want to listen but how I write in the MainForm because the Maintree control is under DockingControl and not directly under the MainForm.
1) Listen to the Validated event of the TextBox in the MainTree control. Assuming this is when you want to Refresh. You could do this in your MainForm form.
In the MainForm:
private sub something() handles Human_Resources.MainTree.Mytext1.validate
...
end sub
Sure the above does not work!!! But how? What should I wrote in the handles?
AD
Administrator
Syncfusion Team
September 24, 2002 04:05 PM UTC
Hi,
It doesn't matter where the MainTree control is (in your controls hierarchy). You can listen to it's events as long as you have a reference to it. If you don't have a reference to it, then you should expose it from whatever wrapper class/control you have it in.
Let me know if I am missing something.
Regards,
Praveen Ramesh
DR
Dadang Rachmad
September 29, 2002 09:30 AM UTC
Sorry, I came from VB6 and not C++.
Attached is a small sample, it does not work although there is no error.
Do you mean like the sample or there is another method.
Thanks.
AD
Administrator
Syncfusion Team
September 30, 2002 11:15 AM UTC
Hi,
I added a line of code in this handler you had:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim NewForm As New MainTree()
' Update your reference every time.
Me.MT = NewForm
NewForm.Show()
End Sub
The xx handler now gets hit.
Regards,
Praveen Ramesh