เวลาที่ผมทำโปรแกรมขึ้นมาแล้วมันมีหน้าการทำงานหลายหน้า เวลากดปุ่มนี้ให้แล้วหน้า form อีกหน้า show แล้วพอกดปุ่มที่หน้า form ที่โชว์อยู่ก็ให้ไปเรียกหน้า form อีกหน้า show ขึ้นมาอีก พอ user ใช้งานไปมากๆ ก็จะเรียกใช้หลายหน้าเลย โดยเวลาที่ เรียกหน้า form ต่อไปให้ Show ผมก็จะให้ หน้าที่ใช้อยู่ Hide ไว เพราะว่าถ้า close โปรแกรมก็จะปิดตัวลง
พอเวลาใช้งานไปนานๆ ก็เหมือนกับเปิดไว้ทุกหน้า แต่เรา Hide มันไว พอ User เรียกใช้หน้าที่ Hide อยู่ ผมก็จะไปเขียน Code ดักไว้ที่ Event Activated ให้มันทำงานเหมือนตอน Load Form ครั้งแรก (ทุกหน้าจะ Load ครั้งเดียว เพราะว่าไม่มีหน้าไหน close เลย เพียงแค่ Hide ไว้เท่านั้น Event Load จึงจะโดนเรียกใช้งานแค่ครั้งที่เรียกหน้า Form นั้นครั้งแรกเท่านั้น)
ไม่ทราบว่า โดยปกติหน้า form ที่ User ไม่ใช้แล้ว เราจะใช้วิธี hide ไว้แบบนี้หรือเปล่าครับ เพราะว่าถ้าใช้คำสั่ง close โปรแกรมก็จะปิดลง เคยเห็นบางท่านให้ใช้คำสั่ง unload ผมก็ได้รองแล้ว แต่เหมือนจะไม่มีคำสั่งนี้เลยนะครับ ตอนนี้ที่ใช้ก็จะใช้เป็น Hide ตลอด แต่ก็ยังไม่มั่นใจ อะครับ
ใน msdn forum แนะนำว่าการใช้ form หลายๆ form เพื่อกำหนดหรือตีกรอบการโต้ตอบ user นอกจากจะสิ้นเปลืองทรัพยากร
แล้วยังทำให้สับสนทั้งตัวคนเขียนคนใช้ ถ้าเปลี่ยนไปใช้ tab เป็น container จะช่วยลดการใช้ form ลงไปได้เยอะ
หรือถ้าหากเปลี่ยนเป็นRibbon bar แบบเดียวกับ visual studio นั่นแหละค่ะ จะเห็นได้ว่ามีการใช้ form น้อยถึงน้อยมาก
อันนี้ที่จริงเป็นหลักการ ออกแบบ เรื่อง man-machince interface เท่านั้นเองค่ะ
เรื่องการออกแบบ เป็นส่วนสำคัญอย่างหนึ่งเพื่อให้ ใครก็ตามที่หลวมตัวมาใช้โปรแกรมที่เราเขียน
สามารถเข้าใจและทำอะไรสักอย่างเพื่อบรรลุเป้าหมายตามที่เราและเขาคิดเอาไว้ค่ะ
คิดว่าถ้าคุณ ไม่มีชื่อ(จะเพราะลืมชื่อ หรือไม่มีใครคบก็ตามแต่) ออกแบบดีๆแล้ว form เล็ก form น้อย
จะหายหน้าหายตาไปกว่าครึ่งมั้งคะ
ส่วน การ hide หรือ close ส่วนตัวคิดว่าด้วยทรัพยากรที่ล้นเหลือของคอมพิวเตอร์ในปัจจุบัน
น่าจะเพียงพอกับการ hide form เอาไว้ค่ะ