আমি এমডিআই বেশ ব্যবহার করি, আমি একাধিক ভাসমান ফর্মের চেয়ে এটি আরও বেশি পছন্দ করি (যেখানে এটি ব্যবহার করা যেতে পারে)।
তবে এ থেকে সেরাটি পেতে আপনার নিজের ইভেন্টগুলির সাথে গ্রিপ পেতে হবে। এটি আপনার জন্য জীবনকে এত সহজ করে তোলে।
একটি কঙ্কাল উদাহরণ।
আপনার নিজস্ব ইন্টারুপেট প্রকার রয়েছে,
//Clock, Stock and Accoubts represent the actual forms in
//the MDI application. When I have multiple copies of a form
//I also give them an ID, at the time they are created, then
//include that ID in the Args class.
public enum InteruptSource
{
IS_CLOCK = 0, IS_STOCKS, IS_ACCOUNTS
}
//This particular event type is time based,
//but you can add others to it, such as document
//based.
public enum EVInterupts
{
CI_NEWDAY = 0, CI_NEWMONTH, CI_NEWYEAR, CI_PAYDAY, CI_STOCKPAYOUT,
CI_STOCKIN, DO_NEWEMAIL, DO_SAVETOARCHIVE
}
তারপরে আপনার নিজের আরগস টাইপ করুন
public class ControlArgs
{
//MDI form source
public InteruptSource source { get; set; }
//Interrupt type
public EVInterupts clockInt { get; set; }
//in this case only a date is needed
//but normally I include optional data (as if a C UNION type)
//the form that responds to the event decides if
//the data is for it.
public DateTime date { get; set; }
//CI_STOCKIN
public StockClass inStock { get; set; }
}
তারপরে আপনার নামের স্থানের মধ্যে, তবে একটি শ্রেণীর বাইরে ডেলিগেট ব্যবহার করুন
namespace MyApplication
{
public delegate void StoreHandler(object sender, ControlArgs e);
public partial class Form1 : Form
{
//your main form
}
এখন হয় ম্যানুয়ালি বা জিইউআই ব্যবহার করে, শিশু ফর্মগুলির ইভেন্টগুলিতে এমডিআইপিয়ারেন্টদের সাড়া দিন।
তবে আপনার owr আরগ্সের সাহায্যে আপনি এটিকে একটি ফাংশনে হ্রাস করতে পারবেন। এবং আপনার ইন্টারবাটগুলি ইন্টারবাট করার বিধান থাকতে পারে, ডিবাগিংয়ের জন্য ভাল তবে অন্যান্য উপায়েও এটি কার্যকর হতে পারে।
কেবলমাত্র আপনার সমস্ত এমডিপেন্ট ইভেন্ট কোডগুলির একটি ফাংশনে নির্দেশ করুন,
calendar.Friday += new StoreHandler(MyEvents);
calendar.Saturday += new StoreHandler(MyEvents);
calendar.Sunday += new StoreHandler(MyEvents);
calendar.PayDay += new StoreHandler(MyEvents);
calendar.NewYear += new StoreHandler(MyEvents);
একটি সাধারণ স্যুইচ প্রক্রিয়া সাধারণত যথাযথ ফর্মগুলিতে ইভেন্টগুলি পাস করার জন্য যথেষ্ট।