dim frm as new form2
AddHandler frm.FormClosing, AddressOf Form2Closing
frm.ShowDialog()
Code (VB.NET)
Private Sub Form2Closing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs)
RemoveHandler CType(sender, Form).FormClosing, AddressOf Form2Closing
me.RefreshGrid()
End Sub
อ๋อ frm คุณแม่ เรียก form คุณลูก ออกมา
คุณลูกก็ออกมาโช้งเช้ง update ข้อมูลนะคัฟ แล้วที่ form คุณแม่มีการ display ข้อมูล
อยากให้คุณลูกบอกคุณแม่ว่า update ข้อมูลด้วยดิคะ
หุยยย เคยเขียนให้นานมากละเรื่องทำนองนี้อะค่ะ https://www.thaicreate.com/dotnet/forum/039436.html
หลักการมีอยู่ว่า จะให้คุณลูกเนี่ยเปลี่ยนสภาพจาก form ทำดาๆ เป็น dialogue form เสีย
คือไม่ใช่ไป set form border ให้เป็น dialoque นะคะ
แต่เปลี่ยนพฤติกรรมเลย คือถ้าเป็น dialogue form เนี่ย
user จะกลับไปคลิกอะไรที่ form แม่ไม่ได้เลย
จะต้องปิด dialogue form ก่อน ทีนี้ในการปิด จะมีปุ่มอยู่สองอัน
คือ ok กับ cancel ถ้ากด ok คุณลูกก้อจะ return ค่า ok นะคัฟ
ถ้ากด cancel ก็จะ return ค่า cancel เราเอามาแยกได้ค่ะ
จะเข้าใจง่ายๆคือ messagebox ที่มีปุ่มสองปุ่มนั่นแหละ
มาประยุกต์กัน เมื่อคุณเปลี่ยน form ลูกให้เป็น dialog form แล้ว
ตรง code ของ ปุ่ม ok ให้คุณ ใส่ code update ข้อมูลตามปกติ
เมื่อ user กดปุ่ม ok form ลูกก็จะปิดแล้ว return ค่า ok ออกมา
เราก้อมา check ค่านี้ ถ้ามา ok คุณแม่ก็ refresh ข้อมูลไป
code จะประมาณนี้ค่ะ
snippet code : vb.net Code (VB.NET)
if ( GoodChildFrm.ShowDialog() = DialogResult.OK) Then
'code ให้ คุณแม่ update ข้อมูลไปค่ะ
.......
End if