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

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

সকলকে শুভেচ্ছা জানিয়ে শুরু করছি, আজকের টিউন। গত পর্বে আমি ডেস্কটপ এপ্লিকেশন ডেভেলপমেন্ট সম্পর্কে সামান্য কিছু প্রাথমিক বিষয়াবলি নিয়ে আলোচনা করেছি। এ পর্ব থেকে ধারাবাহিক ভাবে প্রত্যেক পর্বে কিভাবে ছোট ছোট বিষয়গুলো নিয়ে কোড করতে হয়, সেগুলো দেখাব। যেমনঃ এপর্বে আপনি একটি নিজের নাম লিখবেন এবং সেটা একটি মেসেজ বক্সের মাধ্যমে দেখাবেন। এর মাধ্যমে আপনি মেসেজ বক্সের কাজ এবং ইনপুট নেয়ার কোন একটি কন্ট্রোল (যেমনঃ টেক্সটবক্স) সম্পর্কে জানতে পারবেন।

আসুন, শুরু করি আজকের পর্ব। আমার আজকের কাজ হল, এমন একটি এপ্লিকেশন বানানো, যেখানে আপনি নিজের নাম ইনপুট দিবেন, সেটি একটি মেসেজ বক্সে Show করবেন।

নতুন ফর্ম তৈরী ও এর প্রোপার্টিজঃ

১। যেকোন কাজের শুরুতে Visual Studio তে নতুন প্রজেক্ট তৈরী করে নিতে হবে। এর জন্য, ভিসুয়াল স্টুডিও ওপেন করে File>>New Project ক্লিক করুন।

২। এরপর একটি New Project Window আসবে, যেখানে Project Type লেখা আছে দেখুন বাম পাশে, সেখান থেকে Windows select করুন, এরপর ডান পাশ থেকে Windows Forms Application বাছাই করে নিন।

Project Name এ নিজের পছন্দ মত কোন নাম দিন। ধরুনঃ MyFirstProject. মনে রাখবেনঃ Project Name এ শুধু Underscore (_) অন্য কোন Special Character অথবা Space ব্যবহার করতে পারবেন না।

৩। OK Click করুন। নতুন একটি Form সহ একটি Project ওপেন হবে। নিচের স্ক্রীনশট দেখুনঃ

৪। এখানে Form টির নাম Form1, এই নাম আমরা পরিবর্তন করব। এরজন্য Form1 সেলেক্ট করে Right Click করুন, একটি মেনু আসবে, এখানে Properties সেলেক্ট করুন। ডানপাশে প্রপার্টিজ Window দেখতে পাবেন।

৫। প্রোপার্টিজ থেকে এই নির্দিষ্ট ফর্মের সকল প্রপার্টি গুলো দেখতে পাবেন একসাথে। নিচে যেসকল প্রপার্টি সম্পর্কে বিশেষ ভাবে জানা দরকার সেগুলো দিয়ে দিলামঃ

Name: এটি হল আপনার ফর্মের একটি নির্দিষ্ট নাম, যেটি আপনি কোড করার সময় ব্যবহার করবেন। মনে করুন, আপনার নাম লিমন, এখন আপনি এমন অনেক মানুষের মধ্যে রয়েছেন যাদের সবার চেহারা আপনার মত, কিন্তু নাম ভিন্ন। আপনার মা-বাবা বা বন্ধুরা কিভাবে আপনাকে চিনবে, তারা লিমন বলে ডাক দিবে, এবং সকল মানুষ যারা অবিকল আপনার মত দেখতে তাদের মধ্যে কেবল আপনি সাড়া দিয়ে বলবেনঃ “এই যে আমি”...(বেশি বকে ফেললাম, দুঃখীত)

AcceptButton: এটি Default ভাবে none করা থাকে। যদি এটি কোন বাটনের সাথে লিঙ্ক করেন, তাহলে এমন হয় যে আপনি Enter প্রেস করলেন, এই কারনে হয়ত কোন Button click এর কাজ হয়ে গেল।

FaceBook এ লগিন করার সময় খেয়াল করেছেন, যে ইউজার নেম ও পাসওয়ার্ড লিখে যদি Enter চাপেন, তাহলে Login button এর কাজ হয়ে যায়, আলাদা করে Login Button press করা লাগেনা।

AutoSize: এই প্রোপার্টি True করা থাকলে, Form কে User ইচ্ছে মত রিসাইজ করতে পারবে না।

Back Color: ফর্মের Background color পরিবর্তন করতে পারবেন।

Background Image: ফর্মের Back Image সেট করতে পারেন।

Context Menu Strip: এই ফর্মের জন্য কোন কন্টেক্সট মেনু দরকার হলে, এখান থেকে সেই মেনুটি বাছাই করুন। এর জন্য আগে থেকে ContextMenuStrip tool ব্যবহার করে মেনু তৈরী করে নিতে হবে।

Cursor: এই ফর্মের উপর মাউস পয়েন্টার কেমন হবে সেলেক্ট করে দিন। Default থাকলে সাধারন পয়েন্টার দেখা যাবে।

Font, ForeColor: Font প্রোপার্টি থেকে Font এবং Font Style পরিবর্তন করুন। ForeColor লেখার রঙ নির্ধারন করে

Enabled: Default value: True। False করে দিলে, form টি Disable হয়ে যাবে। কোন কাজ করা যাবে না।

Size: X-Y Co Ordinate অনুযায়ী ফর্মের সাইজ ঠিক করে দিতে পারবেন।

TopMost: True থাকলে, রান করার সময় এই Form অন্য সকল ফর্মের উপরে থাকবে।

Text: ফর্মের টাইটেল টেক্সট ঠিক করে দিতে পারবেন।

ফর্মে কন্ট্রোল যোগ করাঃ

৬। এখন এই ফর্মের উপর একটি TextBox ও একটি Button নিয়ে আসুন। প্রত্যেক কন্ট্রোলের নিজস্ব Properties আছে। আপাতত, সব প্রোপার্টি নিয়ে কথা বলে টিউন দীর্ঘ করব না। আপনারা চাইলে, পরবর্তিতে কন্ট্রোল গুলার Properties নিয়ে নতুন টিউন করতে পারি।

৭। TextBox এর Properties ঠিক করুনঃ

Name: txtMyName (অন্য কোন নাম দিতে পারবেন)

Button এর Properties:

Name: btnShowName

Text: Show My Name

৮। এখন btnShowName Button এর উপর Double Click করুন। খেয়াল করে দেখুন, এখন একটি কোডিং করার জায়গা দেখা যাবে, এটি হল আপনার ইন্টারফেসের কোড-বিহাইন্ড ফাইল (Code-Behind file). আমরা সব কোডিং এখানে করব। ডাবল ক্লিক করার কারনে Default ভাবে বাটনের Click event তৈরী হয়েছে, অন্যান্য ইভেন্টের দরকার হলে Button এর Properties window ওপেন করুন, এখন event ট্যাব ক্লিক করুন। এখানে Button এর সাথে associated সকল ইভেন্ট দেখা যাবে।

কোডিং ও রান করা:

৯। আমাদের শুধু Click Event দরকার হবে। Click event এ নিচের কোড লিখুনঃ

MessageBox.Show(txtMyName.Text, "My Name", MessageBoxButtons.OK, MessageBoxIcon.Information);

এখানে আপনাদের প্রয়োজনে MessageBox নিয়ে আলোচনা করি।

MessageBox একটি বিল্ট-ইন ক্লাস যা আপনার এপ্লিকেশনে মেসেজবক্স দেখানোর জন্য ব্যবহার করা হয়। এটি Show ফাংশন ব্যবহার করে দেখানো যায়। একারনে MessageBox.Show লেখা হয়। Show ফাংশন যে প্যারামিটার গুলো নেয় তার কয়েকটি বহুল ব্যবহৃত গুলা নিচে দেয়া হলঃ

  • String text: এটি এমন কোন স্ট্রিং যা আপনি message হিসেবে দেখাতে চান। আমরা এখানে যেহেতু TextBox এ Type করা যেকোন কিছু দেখাবো, তাই txtMyName.Text এর মাধ্যমে txtMyName নামে যে টেক্সট বক্স আছে, তাতে রান টাইমে type করা যেকোন কিছু পাওয়া যাবে।
  • String caption: আপনার মেসেজ বক্সের Title Name
  • MessageBoxButtons: আপনার মেসেজবক্সে কি কি বাটন থাকবে, তা ঠিক করে দিতে পারেন। আমি দিয়েছিঃ MessageBoxButtons.OK, শুধু OK button থাকবে।
  • MessageBoxDefaultButton: আপনার মেসেজবক্সে একাধিক বাটন থাকলে (যেমনঃ Yes, No, Cancel) যে কোন একটিকে Default হিসেবে সেট করতে পারেন।
  • MessageBoxIcon: মেসেজ বক্স কি ধরনের আইকন দেখাবে, সেটা ঠিক করে দিন। এটা নির্ভর করে আপনি কি ধরনের মেসেজ দেখাতে চান। আমি MessageBoxIcon.Information ব্যবহার করেছি, কারন শুধু ইনফর্মেশন দেখাব। Error মেসেজ হলে অন্যরকম হত।

আমি এখানে প্রয়োজনীয় কিছু Property নিয়ে আলোচনা করেছি। আরো জানতে চাইলে নিচের লিঙ্কে দেখুনঃ

http://msdn.microsoft.com/en-us/library/system.windows.forms.messagebox.aspx

১০। এখন Debug menu থেকে Start Without Debugging অথবা Ctrl+F5 চাপুন। আপনার project রান করবে। TextBox এ কিছু টাইপ করুন, Show My Name বাটন ক্লিক করুন।

Show My Name button click করলে নিচের MessageBox দেখা যাবেঃ

ধন্যবাদ, আজ এ পর্যন্ত। শুভ কামনা রইল সবার জন্য।

Level 0

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

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


টিউনস


আরও টিউনস


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


টিউমেন্টস

Level 0

khub sundor hoyeche.. Nutun akta subject start koray apnake onek dhonnobad…. Amar mone hoy Form er aro kichu properties sobar dorkar hote pare oigulo niya o apnar ar akta lekha asha korchi….. jamon CancelButton, Anchor, Dock, WindowState, ControlBox, IsMDIContainer, Maximize Box, Minimize Box. etc..

    @tanmoycsit: ধন্যবাদ ভাই। আপনি ঠিক বলেছেন। আমি আরেকটি নতুন টিউনে অন্যান্য প্রোপার্টি নিয়ে আলোচনা করব…এখানে সব প্রোপার্টি নিয়ে আলোচনা করলে টিউনটি বড় হয়ে যেত…টিউনার রা বিরক্ত হত…ধন্যবাদ আবারো…

      Level 0

      @জ্যোতি:
      vhaiya apnar post ta amar jonno onek guruttopurno. atar jonno apnake Thank you bolle onek onek kom bola hobe. tai APNAR proti roylo ghoveer SRODDHA. valo thakben

অনেক সুন্দর টিউন ।

Level 2

খুব ভালো হয়েছে । ওয়েব এপ্লিকেশন এ যেমন মাস্টার পেজ ব্যাবহার করা যায়, ডেক্সটপ এপ্লিকেশন এ মাস্টার পেজ এর মত কোন কন্ট্রোল ব্যাবহার করা হয়? জানালে খুব উপকৃত হব।

    @Shafiq: Form এর isMDIController প্রোপার্টি আছে, যার মাধ্যমে আপনি ASP.NET এর মত মাস্টার পেজ ফিচার পেতে পারেন। এক্ষেত্রে একটি ফর্ম মাস্টার ফর্ম হিসেবে গন্য হবে যেখানে মেনু থাকবে, আর এর মধ্যে MDI Controller এ বাকি ফর্ম গুলো Child Form হিসেবে Open হবে। ধন্যবাদ…

Level 2

পরামর্শ দেয়ার জন্য ধন্যবাদ।

Level 0

vaia C# sekhar onek iccha, but Market e etto language er modhe konta best seta bujhte partasi na, ami C# study koresi, bt ques holo C# er kaj korle kokhono ki Microsoft er kach theke software service er jonno payment korte hobe?

    @Jiipo: ধন্যবাদ ভাই। কোন বিশেষ ল্যাঙ্গুয়েজ কে সেরা বলা যায়না। প্রত্যেকে তার নিজের অবস্থানে সেরা। আমি সি শার্প এ কাজ করি, আরেকজন জাভা তে কাজ করেন, তার কাছে জাভা সেরা। আপনার ঠিক করতে হবে, আপনি কোন টেকনোলজি অথবা ল্যাঙ্গুয়েজ নিয়ে কাজ করবেন। যেটা ভালো মনে হবে সেটা করবেন, যেটাতে কাজ করে ভালো লাগবে নিজের কাছে সেটা নিয়ে কাজ করবেন। নিজের কাছে ভালো লাগলে সেটাই তখন সেরা। আর একটা কথা, Microsoft কে Pay করতে হবে তখন যখন তাদের কাছ থেকে Licensed product কিনবেন। যেমনঃ C# এর জন্য Visual Studio 2008/2010 এবং ডেটাবেজ ইঞ্জিন হিসেবে MSSQL Server ব্যবহার করা হয়, যদি এগুলোর কোনটির Licensed copy ব্যবহার করেন/করতে চান, তাহলে টাকা দিতে হবে। কিন্তু আপনার বানানো এপ্লিকেশন আপনার নিজস্ব, এজন্য কেউ টাকা নিবে না আপনার কাছ থেকে। ভালো থাকবেন। শুভ কামনা রইল…:)

Level 0

valo hoise…. 🙂

via 1 ta complete project korar moto kore desktop application nie tune koren plz. form er 1 ta specific button e click kore setar output alada form e dekhabo ki kore?

    @soheli soha: আপু, আমি সেটাই ধারাবাহিক ভাবে যাওয়ার চেষ্টা করছি। একটা টিউনের ভেতর ডেস্কটপ প্রজেক্ট করার মত সবকিছু শেখানো অনেক কঠিন। তারপরেও চেষ্টা করে দেখব। আর আপনার প্রশ্নের জবাবে বলছি, একটা ফর্মে বাটন ক্লিক করে অন্য ফর্মে কোন আউটপুট দেখানোর দুইটি উপায় আছেঃ
    ১। ফর্মের কন্সট্রাক্টর ব্যবহার করেঃ অর্থাৎ আপনি যখন বাটনে ক্লিক করবেন, নতুন ফর্ম টি কল করুন এবং এর কন্সট্রাক্টরে ভ্যালু পাস করে দিন।
    ২। এনক্যাপ্সুলেশন ব্যবহার করাঃ নতুন ফর্মে একটি ভ্যারিয়েবেল (প্রাইভেট) নিয়ে সেটাকে এনক্যাপ্সুলেট করুন এবং যখন দরকার হবে, আগের ফর্ম থেকে নতুন ফর্মের রেফারেন্স ব্যবহার করে ঐ এনক্যাপ্সুলেটেড ফিল্ড সেট করে দিন আপনার আউটপুট অনুযায়ী এবং এভাবে আপনি আগের ফর্মের আউটপুট নতুন ফর্মেও ব্যবহার করতে পারবেন।

    ধন্যবাদ আপনাকে।