সকলকে শুভেচ্ছা জানিয়ে শুরু করছি আজকের পর্ব। এ পর্বে আমি যে বিষয়টি নিয়ে আলোচনা করব, তা হল কিভাবে এক ফর্ম থেকে ডাটা অন্য ফর্মে পাঠাবেন। এটি অত্যন্ত গুরুত্বপূর্ণ একটি বিষয়, যা আমাদের জানা উচিত। একটু পরিষ্কার করে উদাহরন হিসেবে বলি- ধরুন আপনার একটি এপ্লিকেশন এ একটি ফর্ম থেকে ব্যবহারকারীর নাম ও বয়স ইনপুট নিবে এবং এটি অন্য একটি ফর্মে তা দেখাবে।
আমাদের এই কাজটি দুই ভাবে করা যায়ঃ
১। ফর্ম কন্সট্রাক্টর (Constructor) ব্যবহার করে
২। এঙ্ক্যাপ্সুলেশন এর মাধ্যমে
আগের পর্বে শুধু প্রথম টি নিয়ে আলোচনা করেছিলাম। দ্বিতীয়টি এই পর্বে দেখাব।
নিচের ধাপগুলি অনুসরন করুনঃ
১। প্রথমে একটি প্রজেক্ট তৈরী করুন। পূর্বের টিউন অনুসারে। প্রজেক্টের নাম দিন ইচ্ছে মত।
২। এখন প্রথম যে ফর্মটি থাকবে (Form1), সেখানে একটি টেক্সট বক্স ও একটি বাটন নিন।
এই প্রথম ফর্ম থেকে আমরা ভ্যালু পরবর্তি ফর্মে নিয়ে যাব।
এখানে Send to Form2 বাটন দিয়ে পরবর্তি ফর্মে ডাটা পাঠানো হবে।
৩। এবার দ্বিতীয় ফর্ম তৈরী করতে হবে। এজন্য ডান পাশে Solution Explorer (যদি দেখা না যায়, তাহলে View>Solution Explorer click করুন) থেকে আপনার প্রজেক্টের নাম এর উপর রাইট ক্লিক করুন। একটি মেনু পাবেন, সেখান থেকে Add>>Windows Form click করুন।
এখন যে ডায়ালগ বক্স পাবেন, সেখান থেকে Windows Form সেলেক্ট করুন, পছন্দ মত নাম দিয়ে Add ক্লিক করুন।
৪। দ্বিতীয় ফর্মটি তৈরী হয়ে গিয়েছে। এখানে শুধু একটি লেবেল নেয়া হয়েছে যা প্রথম ফর্ম থেকে পাঠানো ডাটা দেখাবে।
৫। এবার দ্বিতীয় ফরমের উপর রাইট ক্লিক করে View Code click করুন, তাহলে কোড দেখা যাবে, এবার একটি String Variable নিতে হবে (Declare করতে হবে)।
String receivedData;
এইবার ভ্যারিয়েবেলের উপর কার্সর রেখে রাইট ক্লিক করে Refactor>>Encapsulate Field ক্লিক করুন অথবা শর্টকাট কিঃ Ctrl+R,E চাপুন। এবার নিচের মত দেখা যাবে।
public Form2()
{
InitializeComponent();
}
String receivedData;
public String ReceivedData
{
get { return receivedData; }
set { receivedData = value; }
}
৬। ফর্ম ২ এর উপর দুইবার ক্লিক করুন, তাহলে Form2_Load method দেখা যাবে, এখানে নিম্নলিখিত কোড লিখুনঃ
if (receivedData != "")
dataLabel.Text = "Data Received from Form1: " + receivedData;
else
dataLabel.Text = "No Data Received";
৭। Form 1 এর Send to Form2 button এর উপর double click করে কোড লিখুন।
Form2 frm = new Form2();
frm.ReceivedData = textBox1.Text;
frm.ShowDialog();
এখন যদি রান করেন, তাহলে আপনার ফর্ম ১ প্রথমে লোড হবে, এবং আপনি টেক্সট বক্সে কিছু লিখে Send to Form2 বাটনে ক্লিক করলে, ২য় ফরমটি লোড হবে এবং প্রথম ফর্মের টেক্সটবক্স এর ডাটা এখানে দেখা যাবে।
কিভাবে হচ্ছে সেটি এবার ব্যাখ্যা করিঃ প্রথম ফর্মে যখন বাটনে ক্লিক করছেন, তখন নিচের কোড গুলো এক্সিকিউট হয়ঃ
Form2 frm = new Form2();
frm.ReceivedData = textBox1.Text;
frm.ShowDialog();
এখানে প্রথমে ২য় ফর্মের একটি ভ্যারিয়েবল নেয়া হচ্ছে। এরপর ২য় ফর্মের যে ভ্যারিয়েবল টি এঙ্ক্যাপ্সুলেট করা হয়েছে, সেটির মধ্যে আমাদের টেক্সট বক্সের ডাটা নেয়া হচ্ছে, এর পর ২য় ফর্মটি লোড করা হচ্ছে। ২য় ফর্ম লোড এর সময় নিচের কোড গুলো এক্সিকিউট হচ্ছেঃ
if (receivedData != "")
dataLabel.Text = "Data Received from Form1: " + receivedData;
else
dataLabel.Text = "No Data Received";
যদি receivedData নামক ভ্যারিয়েবল টি এঙ্ক্যাপ্সুলেট করা হয়েছে, তাই এটিতে কোন ডাটা থাকলে, তা দেখানোর ব্যবস্থা করা হয়েছে।
আমি জ্যোতি। বিশ্বের সর্ববৃহৎ বিজ্ঞান ও প্রযুক্তির সৌশল নেটওয়ার্ক - টেকটিউনস এ আমি 13 বছর 10 মাস যাবৎ যুক্ত আছি। টেকটিউনস আমি এ পর্যন্ত 17 টি টিউন ও 98 টি টিউমেন্ট করেছি। টেকটিউনসে আমার 2 ফলোয়ার আছে এবং আমি টেকটিউনসে 0 টিউনারকে ফলো করি।
আমি জ্যোতি চৌধুরী। কম্পিউটার সাইন্স এন্ড ইঞ্জিনিয়ারিং এর ছাত্র। মিলিটারি ইন্সটিটিউট অফ সাইন্স এন্ড টেকনোলজি, মিরপুর ক্যান্টনমেন্ট এ পড়াশোনা করছি। ভাল লাগে বন্ধুদের সাথে আড্ডা দিতে, কম্পিউটার প্রযুক্তি সম্পর্কে জানতে। আগ্রহ আছে সফটওয়্যার ডেভেলপমেন্ট, প্রোগ্রামিং ও ওয়েব ডেভেলপমেন্টের প্রতি। স্বপ্ন দেখতে ভালবাসি। স্বপ্ন কে বাস্তবে রুপায়ন করতে পছন্দ করি।
joss ! chalie jan..