មេរៀនទី១៦: Menu និង Dialog Box

មេរៀនទី១៦: Menu និង Dialog Box

ក្នុងជំពូកនេះ អ្នកនឹងរៀនពីរបៀបធ្វើ:

-បង្កើត Create និង edit menu សំរាប់កម្មវិធីប្រើប្រាស់ Windows Forms application។

-ប្រើ MainMenu control

– ឆ្លើយតបទៅនិង menu event សំរាប់សំដែងការដំណើរការ កាលណាអ្នកប្រើប្រាស់ user menu command ។

-រៀបចំ menus ជាកម្មវិធីនិងបង្កើត dynamic menu។

-បង្កើត Create context និង pop-up menu។

1.   ការណែនាំ Menu និង Style ប្រសិនបើអ្នកមើលក្នុងកម្មវិធីប្រើប្រាស់ Windows application ជា ច្រើន អ្នកនឹងកត់ចំណាំថាមាន item មួយចំនួននៅលើ menu bar ដែល បង្ហាញក្នុងកន្លែងតែមួយដូចគ្នា ហើយមាតិកានៃ item ទាំងនេះគឺតែងតែព្យាករ ទុក ។ ឧទាហរណ៍ File menu គឺជាប្រភេទដំបូងរបស់ item នៅលើ menu bar និងនៅលើ menu នេះអ្នកអាចវាយសរសេររកមើល command សំរាប់បង្កើតឯកសារថ្មី ដែលបានបើកឯកសាររួចស្រេច។ រក្សា save ឯកសារ print ឯកសារ និងកម្មវិធីប្រើប្រាស់ ។ ការបញ្ជា commands ដែលបង្ហាញឆ្លងកាត់កម្មវិធីប្រើប្រាស់ដូចគ្នា; ឧទាហរណ៍ Exit command គឺមិនប្រែប្រួលហើយ command ចុងក្រោយនៅ លើ File menu ។ ហើយអាចមានលក្ខណ:ពិសេសកម្មវិធិប្រើប្រាស់ផ្សេងៗទៀត ដែលប្រើ commands នៅលើ File menu បានល្អប្រសើរ ។ កម្មវិធីប្រើប្រាស់ តែងតែមាន Edit menu ដែលផ្ទុក command ដូចជា Cut, Paste, Clear, និង Find។

2.   បន្ថែម Menu និងដំណើរការ Menu Event

កម្មវិធី Microsoft Visual Studio .NET អនុញ្ញាតអោយអ្នកបន្ថែម menus ជាច្រើននិង menu items ទៅក្នុង form មួយដែលក្នុងពីរមធ្យោបាយ អ្នកអាចប្រើកម្មវិធី Visual Studio .NET integrated development environment (IDE) និង menu editor ដើម្បីបង្កើត menu graphically មួយ អ្នកអាចសរសេរ code បានផងដែរដែលបង្កើត MainMenu object (MainMenu គឺជា class ដែលបានផ្តល់និយមន័យក្នុង Windows Forms library) រួចហើយបន្ថែម MenuItem objects ទៅអោយវា (MenuItem គឺជា class ផ្សេងទៀតដែលមានក្នុង Windows Forms library) ។

3. បង្កើត Menu ក្នុងលំហាត់ខាងក្រោមនេះ អ្នកនឹងប្រើ graphical ឈានទៅបង្កើត menus សំរាប់កម្មវិធីប្រើប្រាស់ Middleshire Bell Ringers Association ។ យើងនឹងធ្វើបែបណាដើម្បីបង្កើត menus ជាកម្មវិធីប្រើប្រាស់ ។

បង្កើត File menu

1. ចាប់ផ្តើមចូលក្នុង Start Visual Studio .NET

2. បើក BellRingers project ដែលមានទីតាំង \Microsoft Press\Visual C# Step by Step\Chapter 15\BellRingers folder ក្នុង My Documents folder របស់អ្នក ។ Middleshire Bell Ringers នេះគឺជាកម្ម វិធីប្រើប្រាស់ ។

3. មើល MemberForm ក្នុងសន្លឹក Design View (ចុចលើ MemberForm.cs ក្នុង Solution Explorer រួចចុចលើ click Designer នៅ លើ View menu) ។

4. ក្នុង Toolbox ទាញ MainMenu control មួយលើ MemberForm
aបញ្ចូលប្រភេទ E&xit រួចហើយចុចលើ Enter
aប្រភេទ Menu Strip Item
aបង្កើត menu item properties ចុចលើ Properties Window នៅលើ View menu ឬចុចលើ F4 ចុចស្តាំលើ File menu item នៅលើ menu strip នៃ MemberForm
aឆែកលើ Ctrl Modifier រួចហើយជ្រើសរើស N ហើយចុចលើ Enter
a

4. control ដោយប្រើ default ដែលហៅថា mainMenu1 បង្ហាញនៅ ខាងក្រោមនៃ form និង menu bar ដែលផ្ទុក caption ប្រភេទនេះបន្ថែម ទៅក្នុង form ។

5. ចុចលើប្រភេទ caption នៅលើ menu bar, type &File, និង ចុចលើ Enter ។ (ប្រសិនបើ menu bar មិនបង្ហាញចុចលើ mainMenu1 control នៅខាងក្រោម form និង menu បង្ហាញ) ។ ដូចអ្នកវាយសរសេរ ទីពីរ សរសេរ caption បង្ហាញទៅខាងស្តាំនៃ item ហើយទីបីវាយសរសេរ caption ដែលបង្ហាញនៅក្រោម File menu item ។

6. ចុចលើហើយវាយសរសេរ caption ដែលបង្ហាញនៅក្រោម File menu item, type &New រួចហើយចុចលើ Enter ។

7. ចុចវាយសរសេរ caption ក្រោម New menu item, type &Open, រួចចុចលើ Enter ។

8. ចុចលើហើយវាយសរសេរ caption ក្រោម Open menu item វាយសរសេរ &Save Member រួចចុចលើ Enter ។

9. ចុចលើវាយសរសេរ caption ក្រោម Save Member menu item, វាយសរសេរសញ្ញា minus sign (-) រួចុចលើ Enter ។ សញ្ញាដកបង្ហាញដូចជា កក្តា menu ដែលប្រើជាក្រុមដែលទំនាក់ទំនង menu items ។

10. ចុចលើវាយសរសេរ caption ក្រោម separator bar, type &Print រួចចុចលើ Enter។

11. ចុចលើសរសេរ caption ក្រោម Print menu item វាយសរសេរ សញ្ញា (-) រួចចុចលើ Enter ។

12. ចុចលើវាយសរសេរ caption ក្រោម separator bar ទីពីរសរសេរ E&xit រួចចុចលើ Enter។
aបង្កើត Menu Item Properties ក្នុងលំហាត់ខាងក្រោមនេះធ្វើការបង្កើត properties នៃ MainMenu control និង menu items ។ អ្នកនឹងប្រើសន្លឹក Properties ដែលអ្នកទើបតែ បានធ្វើ កាលណាអ្នបង្កើត properties សំរាប់ Windows formនិង controls

បង្កើត menu item properties

1. ចុចលើ mainMenu1 control ក្រោម form ។ ក្នុងសន្លឹក Properties ប្តូរឈ្មោះរបស់វាទៅ mainMenu ។ (ប្រសិនបើសន្លឹក Properties មិនត្រូវបានបង្ហាញ ត្រូវចុចលើ Properties Window ពីក្នុង View menu)

2. ចុចលើ Right-click ក្នុង File menu item លើ menu bar នៃ MemberForm ។ នៅលើ menu ដែលបានបង្ហាញចុចលើ Edit Names ។  menu editor បានបង្ហាញឈ្មោះនៃ menu items ដែលមាន text របស់គេ ។

a3. ចុចលើ menuItem1 item នៅលើ menu bar វាយសរសេរ fileItem រួចហើយចុចលើ Enter ។ ប្តូរឈ្មោះនៃ menu items ដែលនៅសេស សល់ដោយប្រើព៌តមាននៅក្នុងតារាងខាងក្រោមនេះ:

Item New name
[menuItem2] newItem
[menuItem3] openItem
[menuItem4] saveItem
[menuItem6] printItem
[menuItem8] exitItem

4. កាលណាអ្នកបានបញ្ចប់ចុចលើ right-click នៃ fileItem menu រួច uncheck លើ Edit Names option ។

5. ជ្រើសរើស Save Member menu item ក្នុង File menu ក្នុង MemberForm រួចចុចលើ Shortcut ក្នុងសន្លឹក Properties ។ ជ្រើសរើស CtrlS option ពីក្នុង drop-down list ។ ទោះបីជាតំលៃសំរាប់ shortcut keys មានឈ្មោះដូចជា CtrlS និង AltF4 កាលណាវាត្រូវបានបង្ហាញនៅលើMenu វាបង្ហាញដូចជា: Ctrl+S and Alt+F4 ។
a6. មាន property ផ្សេងទៀតដែលហៅថា ShowShortcut ក្រោម Shortcut property ។ property នេះកំណត់ថាតើ shortcut key ត្រូវបាន បង្ហាញនៅលើ menu កាលណាកម្មវិធីប្រើប្រាស់ត្រូវរត់ដំណើរការ ។

7. ប្តូរ shortcut keys របស់ menu items ផ្សេងទៀតដោយប្រើតំលៃ នៅក្នុងតារាងខាក្រោមនេះ ។

Item Shortcut
newItem CtrlN
openItem CtrlO
printItem CtrlP
exitItem AltF4

8. ចុចលើ printItem item នៅលើ File menu រួចហើយចុចលើ Enabled ក្នុងសន្លឹក Properties ។ ជ្រើសរើស False option ពី drop-down list ។ អ្នកនឹងសរសេរ code មួយចំនួនដើម្បី update property នេះទៅ True បន្ទាប់ពី data ត្រូវបានមើលឃើញ ។

តែស menu

1. នៅលើ Debug menu ចុចលើ Start (ឬចុចលើ F5) ដើម្បី compile និងរត់ដំណើរការកម្មវិធីប្រើប្រាស់ ។

2. កាលណា form បង្ហាញចុចលើ File menu ។ menu របស់អ្នក

បង្ហាញ ។ កំណត់ចំណាំថា Print command ត្រូវបាន disabled ។ អ្នកអាច ចុចលើចុចលើ commands ផ្សេងទៀត ។

3. ចុចលើ form អ្នកមិនអាចប្រើ Exit command នៅលើ File menu ដែលមិនទាន់មាន; ប្រើ System menu ជំនួស ។

4. ចុចលើ Exit ដែល form ព្យាយាមបិទ close ។ អ្នកត្រូវបានស្នើសុំ ប្រសិនបើ អ្នកបានធ្វើច្បាស់លាស់ដើម្បីបិទ form ។ ប្រសិនបើអ្នកចុចលើ No form ដែលនៅសេសសល់បានបើក; ប្រសិនបើចុចលើ Yes ពេលនេះ form closes និងកម្មវិធីប្រើប្រាស់ត្រូវបានបញ្ចប់ ។

5. ចុចលើ Yes ដើម្បីបិទ form ។

Pop-Up Menu

មានកម្មវិធីប្រើប្រាស់ Windows applications ទំនើបជាច្រើនបាន បង្កើតប្រើ pop-up menus ដែលបង្ហាញកាលណាអ្នកចុចលើ right-click form ឬ control ។ menus តែងតែមាន context-sensitive និងបង្ហាញ commands ដែលអាចអនុវត្តទៅក្នុង control ឬ form ដែលបង្ហាញចំណុចរួម

បង្កើត Pop Up Menu

លំហាត់ខាងក្រោមនេះ អ្នកនឹងបង្កើត pop-up menus ពីរ ។ pop-up menu ទីមួយត្រូវបានភ្ជាប់ទៅ firstName និង lastName text box controls ហើយអនុញ្ញាតអោយអ្នកប្រើប្រាស់កំណត់ច្បាស់ controls ។ pop-up Menu ទីពីរត្រូវបានភ្ជាប់ទៅ form និងផ្ទុក commands ដើម្បីរក្សាទុក ដែលអាចមើលពត៌មានរបស់សមាជិកនិងសំរាប់ធ្វើអោយបានច្បាស់ form ។ ដើម្បីធ្វើ ដូចនេះ អ្នកបង្កើតដោយប្រើ menu item ដែលមានស្រេចជាងការប្រសើជាការ បង្កើតថ្មីមួយ ។

បង្កើត first Name និង last​ Name pop up menu

1. ក្នុងសន្លឹក Design View ដែលមើលឃើញ MemberForm ទាញ ContextMenu control ពីក្នុង Toolbox រួចហើយ drop វាលើ form ។ (ប្រសិនបើ Toolbox មិនអាច visible ចុចលើ Toolbox ពីក្នុង View menu) ContextMenu object ដែលហៅថា contextMenu1 បង្ហាញខាងក្រោមនៃ form ។
a2. ជ្រើសរើស contextMenu1 control វាយសរសេរ textBoxMenu ក្នុងប្រអប់ (Name) text box ក្នុងសន្លឹក Properties រួចហើយចុចលើ Enter

3. ចុចលើ Context Menu title text វាយសរសេរ caption ដែល

បង្ហាញក្រោមវា ។

4. ចុចវាយសរសេរ caption វាយសរសេរ Clear Text រួចចុចលើ Enter ។

5. ចុចលើ Clear Text caption សរសេរ textBoxClearItem ក្នុងប្រអប់ (Name) text box ក្នុងសន្លឹក Propertiesរួចចុចលើ Enter ។

6. ចុចលើប្រអប់ firstName text box control (ដំបូងឈ្មោះ Name label) ។ ក្នុងសន្លឹក Properties ប្តូរ ContextMenu property ទៅជា textBoxMenu ។

7. ចុចលើប្រអប់ lastName text box control ក្នុងសន្លឹក Properties ប្តូរ ContextMenu property ទៅជា textBoxMenu ។ (controls ជាច្រើនត្រូវបានអនុញ្ញាដើម្បីចែកចាយ same pop-up menu ដូចគ្នា) ។

8. ចុចលើ Right-click  textBoxMenu control នៅខាងក្រោមនៃ form រួចចុចលើ Edit Menu។ menu មួយបង្ហាញ Context Menu caption ។

9. នៅលើ menu ចុចលើ Clear Text ។

10. ក្នុងសន្លឹក Properties ចុចលើប៊ូតុង Events វាយសរសេរ textBoxClearClick ក្នុងការចុចលើ event text box រួចចុចលើ Enter ។ event method ថ្មីដែលហៅថា textBoxClearClick គឺត្រូវបានបង្កើតក្នុង Code និង Text Editor ។

11. បន្ថែម statement ខាងក្រោមទៅ textBoxClearClick event method:

if (this.Tag.Equals(firstName))

{

firstName.Clear();

firstName.Focus();

}

else

{

lastName.Clear();

lastName.Focus();

11. ប្រសិនបើ SourceControl property នៃ pop-up menu យោងតាមប្រអប់ firstName text box និង firstName.Clear method ។

12. នៅលើ Debug menu ចុចលើ Start ។ project compiles រួចរត់ ដំណើរការ ។

13. កាលណា form បង្ហាញវាយសរសេរឈ្មោះទៅក្នុង First Name និងប្រអប់ Last Name text boxes ។

14. ចុចលើ Right-click នៃប្រអប់ First Name text box ។ pop-up menu បង្ហាញដែលផ្ទុក Clear Text command ។

15. ចុចលើ Clear Text command ។ ប្រអប់ First Name text box បានបង្ហាញច្បាស់ ។

16. វាយសរសេរឈ្មោះទៅក្នុងប្រអប់ First Name text box រួចប្តូរ move ទៅប្រអប់ Last Name text box ។ ចុចលើ Right-click លើប្រអប់ Last Name text box ដើម្បីមើល pop-up menu ។

17. ចុចលើ Right-click គ្រប់កន្លែងនៅលើ form ។ ពីព្រោះវា First Name និង Last Name text boxes ដែលមាន pop-up menus។

18. បិទ form ទាំងអស់ ។

សរសេរ saveMemberClick

  1. បង្ហាញ MemberForm ក្នុងសន្លឹក Design View ចុចលើ File menu រួច ហើយចុចលើ Save Member។
  2. ក្នុងសន្លឹក Properties ចុចលើប៊ូតុង Events ជ្រើសរើសចុចលើ event វាយសរសេរ saveMemberClick រួចហើយចុចលើ Enter។
  3. ក្នុង Code និង Text Editor ទាញទៅខាងលើ MemberForm.cs file សរសេរ code:

using System.IO;

  1. ត្រឡប់ចូល saveMemberClick នៅចុងបញ្ចប់សរសេរ MemberForm.cs file

writer.WriteLine(“First Name: ” + firstName.Text);

writer.WriteLine(“Last Name: ” + lastName.Text);

writer.WriteLine(“Tower: ” + towerNames.Text);

writer.WriteLine(“Captain: ” + isCaptain.Checked);

writer.WriteLine(“Member Since: ” + memberSince.Text);

writer.WriteLine(“Methods: “);

foreach(object methodChecked in methods.CheckedItems) {

writer.WriteLine(methodChecked.ToString());

}

writer.Close();

MessageBox.Show(“Member details saved”, “Saved”);