সি শার্প ও ডট নেট প্রোগ্রামিং [পর্ব-১৩] :: ডেস্কটপ এপ্লিকেশন ডেভেলপমেন্ট ৩

সি-শার্প এবং ডট নেট প্রোগ্রামিং টিউটোরিয়াল

সি শার্প ও ডট নেট প্রোগ্রামিং ১৩তম পর্বঃ ডেস্কটপ এপ্লিকেশন ডেভেলপমেন্ট ৩

সকলকে শুভেচ্ছা জানিয়ে শুরু করছি আজকের পর্ব। এ পর্বে আমি যে বিষয়টি নিয়ে আলোচনা করব, তা হল কিভাবে এক ফর্ম থেকে ডাটা অন্য ফর্মে পাঠাবেন। এটি অত্যন্ত গুরুত্বপূর্ণ একটি বিষয়, যা আমাদের জানা উচিত। একটু পরিষ্কার করে উদাহরন হিসেবে বলি- ধরুন আপনার একটি এপ্লিকেশন এ একটি ফর্ম থেকে ব্যবহারকারীর নাম ও বয়স ইনপুট নিবে এবং এটি অন্য একটি ফর্মে তা দেখাবে।

আমাদের এই কাজটি দুই ভাবে করা যায়ঃ

১। ফর্ম কন্সট্রাক্টর (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 নামক ভ্যারিয়েবল টি এঙ্ক্যাপ্সুলেট করা হয়েছে, তাই এটিতে কোন ডাটা থাকলে, তা দেখানোর ব্যবস্থা করা হয়েছে।

লক্ষনীয়ঃ যে ফিল্ড/Variable Encapsulate করবেন, সেটার নিজস্ব নাম অবশ্যই প্রথম অক্ষর ছোট হাতের দিয়ে শুরু হলে ভাল হয়ে, কারন Encapsulate করার পরে Encapsulated field এর প্রথম অক্ষর বড় হাতের হয়।

আপনাদের কাছে আমি আন্তরিক ভাবে দুঃখীত অনিয়মিত হওয়ার জন্য। অফিসের কাজের প্রেসারের কারণে সময় দেয়া খুব কঠিন হচ্ছিল।

Level 0

আমি জ্যোতি। বিশ্বের সর্ববৃহৎ বিজ্ঞান ও প্রযুক্তির সৌশল নেটওয়ার্ক - টেকটিউনস এ আমি 13 বছর 11 মাস যাবৎ যুক্ত আছি। টেকটিউনস আমি এ পর্যন্ত 17 টি টিউন ও 98 টি টিউমেন্ট করেছি। টেকটিউনসে আমার 2 ফলোয়ার আছে এবং আমি টেকটিউনসে 0 টিউনারকে ফলো করি।

আমি জ্যোতি চৌধুরী। কম্পিউটার সাইন্স এন্ড ইঞ্জিনিয়ারিং এর ছাত্র। মিলিটারি ইন্সটিটিউট অফ সাইন্স এন্ড টেকনোলজি, মিরপুর ক্যান্টনমেন্ট এ পড়াশোনা করছি। ভাল লাগে বন্ধুদের সাথে আড্ডা দিতে, কম্পিউটার প্রযুক্তি সম্পর্কে জানতে। আগ্রহ আছে সফটওয়্যার ডেভেলপমেন্ট, প্রোগ্রামিং ও ওয়েব ডেভেলপমেন্টের প্রতি। স্বপ্ন দেখতে ভালবাসি। স্বপ্ন কে বাস্তবে রুপায়ন করতে পছন্দ করি।


টিউনস


আরও টিউনস


টিউনারের আরও টিউনস


টিউমেন্টস

Level 0

joss ! chalie jan..

ধন্যবাদ ভাইয়া অফিসের কাজের পরেও যে আমাদের কে সময় দেন এটই অনেক কিছু? কিন্তু ভাইয়া একটা অনুরোধ লিখা বন্ধ করেন না ।

Level 0

Vhaiya ASP.net er opor ki C#.net er moto bangla tuto likhben .
likhle khub upokrito hotam. amra kojon

Level 0

Vaiya ami programta run korte parini. 2 Error show korse. jeta ami program er sese pest core dilam’ please correctio kore deben

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication_03
{
class Program
{
static void Main(string[] args)
{
while (log_in_count <= 5) ;
Console.WriteLine("please input your user name and password. press ENTER after each input\n");
Console.Write("Your User name:");
user_name = Console.ReadLine();
Console.Write("Your password:");
password = Console.ReadLine();
if (user_name == "rafa" && password == "rafa383");
{
Console.WriteLine("Wellcome" +user_name+ ".you are authorized user");
break;
}
else;
{
Console.WriteLine("\nAccess Denied! user name or password is in correct");
Console.WriteLine("\nYou Will Get" +(5-log_in_count)+ "chancess to log in");

}
log_in_count++;
}
Console.WriteLine("\nThank you for your co operation");

}
}

Error report:Error 1 Invalid token '(' in class, struct, or interface member declaration C:\Documents and Settings\aayaan\My Documents\Visual Studio 2008\Projects\ConsoleApplication 03\ConsoleApplication 03\Program.cs 31 21 ConsoleApplication 03
Error 3 Invalid expression term 'else' C:\Documents and Settings\aayaan\My Documents\Visual Studio 2008\Projects\ConsoleApplication 03\ConsoleApplication 03\Program.cs 23 13 ConsoleApplication 03

wonderful…can u give ur number to contact u….

can u plase give ur email also. i need emerjency to solve a programming .