ស៊ី ស្សាប រចនា​សម្ព័ន្ធ​ដូច​ដើម​ឈើ (C# Tree View: C Sharp Tree View)

មាតិការ
១.សេចក្តី​ណែនាំ 2
២.គោល​បំណង​ 3
៣.Property 3
៤. Method 4
៥.ការ​ដំណើរ​ការ​របស់ Tree Node 4
៦.Method 5
៧.ការ​បង្កើត​ជា​កម្មវិធី 6
៨. Event

អារម្ភកថា
C Sharp (C#) ជា​​ភាសា​មួយ​សម្រាប់​កុំ​ព្យូទ័រ ដែល​ភាគ​ច្រើន​មិត្ត​ទាំ​ងអស់​គ្នា​តែង​តែ​ប្រើ​វា​សម្រាប់​បង្កើត​កម្មវិធី​ប្រភេទ Desktop Application​។ ប៉ុន្តែ​វា​ក៏​មាន​សម្មភាព​ក្នុង​ការ​បង្កើត​កម្មវិធី​ប្រភេទ Web Application បាន​ផង​ដែរ​។ ទោះ​ជា​យ៉ាង​ណា​ក៏​ដោយ​ក៏​យើង​ក៏​ប្រើ​វា​យើង​ច្រើន​ផង​ដែរ ពី​ព្រោះ​វា​ត្រូវ​បាន​ផ្សព្វ​ផ្សាយ និង​បង្កើត​ដោយ​ក្រុម​ហ៊ុនយក្ស​ ម៉ៃក្រូសូហ្វ(Microsoft) ហើយ​វា​ក៏​ជា​ជំហ៊ាន​ដំបូង​ក្នុង​ការ​សិក្សា​នៅ​ក្នុង​​សកល​វិទ្យា​ល័យ​ជា​ច្រើន​​នៅ​ទូទាំង​ពិភពលោក​ផង​ដែរ​។ មូល​ហេតុ​ដែល​នាំ​ឲ្យ​​មនុស្ស​ជា​ច្រើន​ ចេះ​​ភាសា​នេះ​គឺ​មាន​មូល​ហេតុ​ចំប្បង គឺ​ចំនួន​អ្នក​ប្រើ​ប្រាស់​ប្រព័ន្ធ​ប្រតិបត្តិ​ការ វីនដូ(Window) ហើយ​ភាសា​នេះ​ក៏​មាន​ដំណើរ​ការ​យ៉ាង​ល្អ​ជា​មួយ​ ប្រព័ន្ធ​ប្រតិបត្តិ​ការ វីនដូរ​ទៀត​នោះ រួម​ជា​មួយ​កម្មវិធី​ជា​ច្រើន​ដែល​មាន​ឧបករណ៍​ដ៏​លើស​លប់​ក្នុង​ការ​ គូស​និង​រចនា​ទៀត​ផង​នោះ​ក៏​បាន​ធ្វើ​ឲ្យ​ភាសារ​នេះ​ក្លាយ​ជា​ភាសា​ទី​មួយ​ដែល​ត្រូវ​បាន​គេ​យក​ទៅ​បង្រៀន​នៅ​តាម​សកល​វិទ្យាល័យ​។

នៅ​ក្នុង​ភាសា C Sharp(C#) មាន​ជំនួយ​ជា​ច្រើន​​នៅ​ក្នុង​វិបសាយ​ក្រុម​ហ៊ុន ម៉ៃក្រូសូហ្វ ហើយ​សព្វ​ថ្ងៃ​នេះ​ភាសា​នេះ​បាន​ក្លាយ​ជា​ភាសា​មួយ​ដែល​មិន​មានអាធ្ញាប័ណ្ណ​នោះ​ឡើយ ដែល​លោក​អ្នក​ក៏​អាច​សិក្សា​ និង​អនុវត្តន៍ វា​បាន​នៅ​លើ​ប្រព័ន្ធ​ប្រតិបត្តិ​ការ​នានា​បាន​ផង​ដែរ ដូច​ជា ប្រព័ន្ធ​ប្រតិបត្តិ​ការ លីនុច(Linux) ម៉ាក(Mac) ​។ល។

ជា​ចុង​ក្រោយ​នេះ​យើង​ខ្ញុំ​​សូ​ម​ថ្លែង​អំណរ​គុណ​ចំពោះ​លោក​សាស្ត្រា​ចារ្យ ងួន ប៊ុន​​សួរ ដែល​បង្រៀន និង​ណែ​នាំ​ក្រុម​របស់​យើង​ខ្ញុំ​ក្នុង​ការ​បង្កើត​ ព្រម​ទាំង​បង្ហាញ​នូវ​វិបសាយត៍​ជា​ច្រើន​ដើម្បី​ជា​គន្លឹះ​ក្នុង​ការ​បង្កើត​ Assignment​នេះ​។

គោល​បំណង​

នៅ​ក្នុង​ Assignment នេះ​យើង​ខ្ញុំ​សូម​លើក​យក ការ​បង្ហាញ​ប្រភេទ ជា​រចនាសម្ព័ន្ធ (Tree View) ដែល​ក្នុង​ការ​បង្ហាញ​នេះ យើង​ត្រូវ​យល់​អំពី Event និង​ Method ដើម្បី​ជា​គន្លឹះ​ក្នុង​ការ​បង្កើត Tree View នេះ​។ Window Form Tree View ​ជា​ការ​គ្រប់​គ្រង​ ដែល​ជំនួយ​ដល់​ការ​បង្ហាញ​ Menu ជា​ប្រភេទ រចនា​សម្ព័ន្ធ​ ដែល​ជា​ទូទៅ​យើង​ច្រើន​ប្រើ​សម្រាប់​ការ​បង្ហាញ​ File System ​។

Property

ឈ្មោះ
តួនាទី
Name
ជា​ឈ្មោះ​របស់ Control
CheckBoxes
កំណត់​ថា​តើ Check Box តួនាទី​បញ្ហា​នៅ​លើ Node Tree ឬទេ​?
HideSelection
លក់ Selection
ImageList
ភ្ជាប់ទៅ​កាន់​ Image List Control ដើម្បី​ដាក់​រូប​លើ​ Tree View
ImageIndex
ទីតាំង​រូប​នៅ​ក្នុង Image List ដែល​ត្រូវ​បង្ហាញ​លើ Tree View
LabelEdit
អនុញ្ញាតិ​ឲ្យ​ User ធ្វើ​ការ​ប្រែ Tree Label បាន
Nodes
ជា​សំណុំ Nodes ដែល​ត្រូវ​ Assign ដែល​កាន់​ Tree View
ShowLines
បង្ហាញ​ Line រវាង Node និង​ Child Node
ShowPlusMinus
បង្ហាញ​សញ្ញា -/+ ចំ​ពោះ​ Node ដែល​មាន​ Child Node
ShowRootLines
បង្ហាញ​សញ្ញា -/+ ចំពោះ Node Root ឬ អត់
SelectNode
Return Node ដែល​កំពុង Select
SelectImageIndex
កំណត់ Image Index ដើម្បី​បង្ហាញ​នៅ​ពេល Node Select
TopNodes
ទាញ​យក Node ទី១ ដែឡ​មើល​ឃើញ
VisibleCount
ជា​ចំនួន Node ដែល​មើល​ឃើញ​

Method

Method គឺ​ជា​ប្រភេទ​ការងារ​ដែល​ប្រតិបត្តិ​ការ​នៅ​ក្នុង Class ដែល​យើង​តែ​ង​តែ​ហៅ​វា​ថា​ជា Function នៅ​ក្នុង Class ដូច​នេះ​យើង​ត្រូវ​ស្វែង​យល់​អំពី​វា​ឲ្យ​បាន​ច្បាស់​ដើម្បី​ងាយ​ស្រួល​ ក្នុង​ការ​​យក​វា​មក​ប្រើ​ប្រាស់​នៅ​ក្នុង Event ផ្សេង​ៗ​។ ចំពោះ​​ការ​បង្កើត​ Tree View យើង​ត្រូវ​មាន​ Method ជា​ច្រើន​ដើម្បី​គ្រប់​គ្រង​ទៅ​លើ Tree View ជាពិសេស​ទាំង​ការ​បញ្ចូល​ទិន្នន័យ និង​លប់​ទិន្នន័យ​។

ចំពោះ Method ដែល​យើង​ត្រូវ​យក​មក​បង្កើត​ការ​បង្ហាញ​ប្រភេទ​ជា Tree View មាន​ដូច​ខាង​ក្រោម​:

ឈ្មោះ
តួនាទី
CollapeAll
បង្រួម Child Node ចូល​ក្នុង​ Node Root
ExpandAll
ពន្លា Node ឲ្យ​ឃើញ Child Node
GetNodeCount
ពន្លា Node ដែល​មាន​នៅ​លើ Tree View (ទាំង Child Node និង Root Node)
Sort
តម្រៀប Root Node តាម​លំដាប់

ដំណើរ​ការ​របស់ Tree Node

Tree Node គឺ​ជា Object មួយ​ដែល​ត្រួវ​បញ្ចូល​ទៅ​ក្នុង Tree View ដែល​រួម​មាន Property និង Methode ដូច​ខាង​ក្រោម :

ឈ្មោះ
តួនាទី
Checked
សម្រាប់​បញ្ជាក់​ថា Node របស់​យើង​បាន​ឆែក ហើយ​ឬ​នៅ​
FirstNode
ជា Child Node ទី​១
FullPath
ជា Path ចាប់​ពី Root Node រហូត​ដល់ Current Node
ImageIndex
ជា Image Index នៅ​ក្នុង Image List សម្រាប់​បង្ហាញ​នៅ​លើ Node
IsEditing
តើ Node កំពុង Edit ឬ​ទេ
IsExpanded
តើ Root Node បាន​ពន្លា Child Node ឬ​ទេ
IsVisible
សម្រាប់​កំណត់​ថា​តើ​ Node អាច​មើល​ឃើញ​បាន​ឬ​ទេ
LastNode
ជា Child Node ចុង​ក្រោយ
NextNode
ជា​ Node ស្ថិត​នៅ​ក្រោម Current Node តែ​ស្ថិត​នៅ​ក្រោម Parent Node តែ​មួយ
Parent
ជា Root Node របស់ Current Node
PrevNode
ជា Node ស្ថិត​នៅ​ខាង​លើ Current Node តែ​ស្ថិត​នៅ​ក្រោម Parent Node តែ​មួយ
SelectImageIndex
កំណត់ Image Index ដើម្បី​បង្ហាញ​នៅ​ពេល Select Node
Text
ជា Label របស់ Node

Method

ចំពោះ Mehtod ដែល​ត្រូវ​ប្រើ​ប្រាស់​នៅ​ក្នុង Tree View និង​នៅ​ក្នុង​ការ​ដំណើរ​ការ​របស់​វា​មាន​ដូច​ជា :

ឈ្មោះ
តួនាទី
Add
បន្ថែម Node ចូល​ក្នុង Tree View
Clear
លប់ Node ទាំង​ដែល​មាន​អស់​នៅ​លើ​ Tree View
Contains
បញ្ជាក់​ថា​តើ Node មាន​នៅ​ក្នុង Tree Node Collection ឬ​អត់
ContainsKey
បញ្ជាក់​ថា​តើ Node មាន​នៅ​ក្នុង Tree Node Collection ឬ​អត់​តាម​រយ:​ Key
CopyTo
ចំ​លង​ Node ទាំ​ង​ទៅ​ដាក់​នៅ​ក្នុង Tree Node ផ្សេង​ទៀត
Expand
ព​ន្លា Node ទាំង​អស់​ដែល​មាន Child Node ឲ្យ​មើល​ឃើញ
ExpandAll
ព​ន្លា Node ទាំង​អស់​ដែល​មាន Child Nodeឲ្យ​មើល​ឃើញទាំង​អស់
Find
រក​មើល Node នៅ​ក្នុង Tree View
IndexOf
ជា​ទី​តាំង Node នៅ​ក្នុង Tree View
IndexOfKey
ជា​ទី​តាំង Node នៅ​ក្នុង Tree View ដែល​កំណត់​ទៅ​តាម Key
Insert
បញ្ចូល Node ទៅ​ក្នុង Tree View ដែល​មាន​ទី​តាំង​នៅ​កន្លែង​ណា​មួយ
Remove
លប់ Node ចេញ​ពី Tree View

ការ​បង្កើត​ជា​កម្មវិធី​

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Threading;

namespace Tree_View
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void drive_Click(object sender, EventArgs e)
{
string drive = box2.Text;
if(drive == “”)
{
MessageBox.Show(“Invalid Drive Name.Please Insert New Name!”);
return;
}
TreeNode n = new TreeNode();
n.Tag = “Drive”;
n.Text = drive;
treeview.Nodes.Add(n);
a = 1;

}

private void folder_Click(object sender, EventArgs e)
{
string folder = box.Text;
if(folder == “”)
{
MessageBox.Show(“Invalid Folder Name.Please Insert New Name!”);
return;
}
if(treeview.Nodes.Count == 0)
{
MessageBox.Show(“No Drive Found!”);
return;
}
if(treeview.SelectedNode == null)
{
MessageBox.Show(“No Drive Selected!”);
return;
}
else if (treeview.SelectedNode.Tag.ToString() == “file”)
{
MessageBox.Show(“Folder Can’t Add!”);
return;
}

TreeNode n = new TreeNode();
n.Text = folder;
n.Tag = “folder”;
treeview.SelectedNode.Nodes.Add(n);

}

private void file_Click(object sender, EventArgs e)
{
string file = box3.Text;
if (file == “”)
{
MessageBox.Show(“Invalid File Name.Please Insert New Name!”);
return;
}
if (treeview.Nodes.Count == 0)
{
MessageBox.Show(“No Drive Or Folder Found.Please Add Drive Or Folder First!”);
return;
}
if (treeview.SelectedNode == null)
{
MessageBox.Show(“No Drive Or Folder Selected.Please Select Drive Or Folder First!”);
return;
}
else if (treeview.SelectedNode.Tag.ToString() == “file”)
{
MessageBox.Show(“Fild Can’t Add To File!”);
return;
}
TreeNode n = new TreeNode();
n.Text = file;
n.Tag = “File”;
treeview.SelectedNode.Nodes.Add(n);
}

private void delete_Click(object sender, EventArgs e)
{
if(treeview.SelectedNode == null)
{
MessageBox.Show(“No Drive, Folder or File Was Select. Please Select At Least 1 To Delete!”);
return;
}
DialogResult messages;
messages = MessageBox.Show(“Do You Want To Delete ?”, “Delete” , MessageBoxButtons.YesNo);
if (messages == DialogResult.No)
{
return;
}
else
{
treeview.Nodes.Remove(treeview.SelectedNode);
}
}

private void sort_Click(object sender, EventArgs e)
{
treeview.Sort();
}

private void clear_Click(object sender, EventArgs e)
{
DialogResult messages;
messages = MessageBox.Show(“Do You Want To Clear All?”, “Clear”, MessageBoxButtons.YesNo);
if (messages == DialogResult.No)
{
return;
}
else
{
if (a == 1)
{
box.Text = “”;
box2.Text = “”;
box3.Text = “”;
a = 0;
}
else {
treeview.Nodes.Clear();
}
}

}

private void expandall_Click(object sender, EventArgs e)
{
treeview.ExpandAll();
}

private void expand_Click(object sender, EventArgs e)
{

if(treeview.SelectedNode == null)
{
}
else
{
treeview.SelectedNode.Expand();
}

}

private void count_Click(object sender, EventArgs e)
{
treeview.CollapseAll();
}

private void collap_Click(object sender, EventArgs e)
{
if (treeview.SelectedNode == null)
{
}
else
{
treeview.SelectedNode.Collapse();
}

}
private void Treeview_Afterselect() {
box.Text = “”;
}

private void asbcg_Click(object sender, EventArgs e)
{

if (b == 0)
{
treeview.Dock = DockStyle.Right;
b = 1;
}
else
{
treeview.Dock = DockStyle.Left;
b = 0;
}
}

private void am_Click(object sender, EventArgs e)
{

}

private void treeview_AfterSelect(object sender, TreeViewEventArgs e)
{

treeview.MouseHover += new EventHandler(this.expandall_Click);
treeview.MouseDoubleClick += new MouseEventHandler(this.count_Click);
treeview.NodeMouseClick += new TreeNodeMouseClickEventHandler(this.collap_Click);
}

void thi(object sender, EventArgs e)
{
throw new NotImplementedException();
}

}
}

Event
យើង​បាន​ចែក​ Event នៅ​ក្នុង​ Tree View ជា​ Double Click និង Single Click ។
Event របស់ Tree View ដែល​យើង​ខ្ញុំ​យក​មក​ប្រើ​ពេល​នេះ​គឺ
MouseHover គឺ​​ដំណើរ​ការ​នៅ​ពេល​ដែល​លោក​អ្នក​អូស Mouse ឆ្លង​កាត់ Tree View វា​នឹង​ដំណើរការ
MouseDouble គឺ​​ដំណើរ​ការ​នៅ​ពេល​ដែល​លោក​ចុច​ពីរ​ដង​នៅ​ក្នុង Tree View វា​នឹង​ដំណើរការ
NodeMouseCLick គឺ​​ដំណើរ​ការ​នៅ​ពេល​ដែល​លោក​ចុច​លើ Node ណា​មួយ​ដែល​នៅ​ក្នុង Tree View វា​នឹង​ដំណើរការ

សូម​កាត់​រូប​នៃ​ប្រតិបត្តិ​ការ​នីមួយ​ៗ​ដាក់​និង​រៀប​រាប់​ពី ប្រតិបត្តិ​ការ ពញរម​ទាំង​ដាក់ Event នៃ​កូដ​នីមួយ​ៗ​ផង​។

http://www.microsoft.com
http://www.google.com
http://www.java2s.com
http://www.c-sharpcorner.com

About សេវាកម្ម​ខ្មែរ

បុរស​ក្រោយ​កញ្ចក់

Posted on 4 ខែ​មីនា 2011, in បណ្ណាល័យ. Bookmark the permalink. បញ្ចេញមតិ.

ឆ្លើយ​តប

Fill in your details below or click an icon to log in:

ឡូហ្កូ WordPress.com

អ្នក​កំពុង​បញ្ចេញ​មតិ​ដោយ​ប្រើ​គណនី WordPress.com របស់​អ្នក​។ Log Out / ផ្លាស់ប្តូរ )

រូប Twitter

អ្នក​កំពុង​បញ្ចេញ​មតិ​ដោយ​ប្រើ​គណនី Twitter របស់​អ្នក​។ Log Out / ផ្លាស់ប្តូរ )

រូបថត Facebook

អ្នក​កំពុង​បញ្ចេញ​មតិ​ដោយ​ប្រើ​គណនី Facebook របស់​អ្នក​។ Log Out / ផ្លាស់ប្តូរ )

Google+ photo

អ្នក​កំពុង​បញ្ចេញ​មតិ​ដោយ​ប្រើ​គណនី Google+ របស់​អ្នក​។ Log Out / ផ្លាស់ប្តូរ )

កំពុង​ភ្ជាប់​ទៅ​កាន់ %s

%d bloggers like this: