private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Tree));
this.mainMenu1 = new System.Windows.Forms.MainMenu();
this.menuItem1 = new System.Windows.Forms.MenuItem();
this.menuItem2 = new System.Windows.Forms.MenuItem();
this.menuItem3 = new System.Windows.Forms.MenuItem();
this.menuItem4 = new System.Windows.Forms.MenuItem();
this.menuItem5 = new System.Windows.Forms.MenuItem();
this.mnuPaste = new System.Windows.Forms.MenuItem();
this.treeView1 = new System.Windows.Forms.TreeView();
this.imageList2 = new System.Windows.Forms.ImageList();
// mainMenu1
this.mainMenu1.MenuItems.Add(this.menuItem1);
this.mainMenu1.MenuItems.Add(this.menuItem2);
// menuItem1
this.menuItem1.Text = “Exit”;
this.menuItem1.Click += new System.EventHandler(this.menuItem1_Click);
// menuItem2
this.menuItem2.MenuItems.Add(this.menuItem3);
this.menuItem2.MenuItems.Add(this.menuItem4);
this.menuItem2.MenuItems.Add(this.menuItem5);
this.menuItem2.MenuItems.Add(this.mnuPaste);
this.menuItem2.Text = “File”;
this.menuItem2.Click += new System.EventHandler(this.menuItem2_Click);
// menuItem3
this.menuItem3.Text = “Copy”;
this.menuItem3.Click += new System.EventHandler(this.mnuCopy_Click);
// menuItem4
this.menuItem4.Text = “Cut”;
this.menuItem4.Click += new System.EventHandler(this.menuCut_Click);
// menuItem5
this.menuItem5.Text = “Delete”;
this.menuItem5.Click += new System.EventHandler(this.mnuDelete_Click);
// mnuPaste
this.mnuPaste.Text = “Paste”;
this.mnuPaste.Click += new System.EventHandler(this.mnuPaste_Click);
// treeView1
this.treeView1.ImageIndex = 0;
this.treeView1.ImageList = this.imageList2;
this.treeView1.Indent = 20;
this.treeView1.Location = new System.Drawing.Point(0, 0);
this.treeView1.SelectedImageIndex = 0;
this.treeView1.Size = new System.Drawing.Size(176, 177);
this.treeView1.BeforeExpand += new System.Windows.Forms.TreeViewCancelEventHandler(this.treeView1_BeforeExpand);
this.treeView1.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.treeView1_AfterSelect);
this.imageList2.Images.Clear();
this.imageList2.Images.Add(((System.Drawing.Image)(resources.GetObject(“resource”))));
this.imageList2.Images.Add(((System.Drawing.Image)(resources.GetObject(“resource1”))));
this.imageList2.Images.Add(((System.Drawing.Image)(resources.GetObject(“resource2”))));
// Tree
this.ClientSize = new System.Drawing.Size(176, 180);
this.Controls.Add(this.treeView1);
this.Menu = this.mainMenu1;
this.Text = “Explorer”;
this.Closing += new System.ComponentModel.CancelEventHandler(this.Tree_Closing);
this.Load += new System.EventHandler(this.Tree_Load);
}
#endregion
public string stripExtraSlash(string str)
{
string path =String.Empty;
if ( str.Length > 1 && str.StartsWith(@””))
{
path = str.Substring( 2, str.Length – 2);
}
else
{
path = str;
}
return path;
}
private void displayChildNodes (System.Windows.Forms.TreeNode parentNode )
{
DirectoryInfo FS = new DirectoryInfo(stripExtraSlash (parentNode.FullPath));
try {
foreach (DirectoryInfo dirInfo in FS.GetDirectories() )
{
//’ ?-create a new node ?-
TreeNode node = new TreeNode();
node.Text = dirInfo.Name;
node.ImageIndex = icoClose;
node.SelectedImageIndex = icoOpen;
parentNode.Nodes.Add(node);
// ?-add the dummy node?-
node.Nodes.Add(“”);
}
}
catch (Exception err)
{
System.Windows.Forms.MessageBox.Show(err.Message);
}
try {
foreach (FileInfo fileInfo in FS.GetFiles() )
{
// create a new node to be added
TreeNode node = new TreeNode();
node.Text = fileInfo.Name;
node.ImageIndex = icoFile;
node.SelectedImageIndex = icoFile;
parentNode.Nodes.Add(node);
}
}
catch( Exception err)
{
System.Windows.Forms.MessageBox.Show(err.Message);
}
}
private void Tree_Load(object sender, EventArgs e)
{
TreeNode node=new TreeNode();
try
{
node.ImageIndex = icoClose;
node.SelectedImageIndex = icoOpen;
node.Text = @””;
treeView1.Nodes.Add(node);
node.Nodes.Add(“”);
treeView1.SelectedNode = node;
}
catch (Exception err)
{
}
}
private void treeView1_BeforeExpand(object sender, TreeViewCancelEventArgs e)
{
if( e.Node.ImageIndex == icoFile) return;
// remove the dummy node and display the subdirectories and files
try {
e.Node.Nodes.Clear(); // clears all the nodes and…
displayChildNodes(e.Node); // create the nodes again
}
catch(Exception err )
{
System.Windows.Forms.MessageBox.Show(err.Message);
}
if (e.Node.GetNodeCount(false) > 0) {
e.Node.ImageIndex = icoClose;
e.Node.SelectedImageIndex = icoOpen;
}
}
private void menuItem2_Click(object sender, EventArgs e)
{
}
private void mnuCopy_Click(object sender, EventArgs e)
{
// copy
pathName = stripExtraSlash(treeView1.SelectedNode.FullPath);
fileName = treeView1.SelectedNode.Text;
copy = true;
mnuPaste.Enabled = true;
}
private void menuCut_Click(object sender, EventArgs e)
{
pathName = stripExtraSlash(treeView1.SelectedNode.FullPath);
fileName = treeView1.SelectedNode.Text;
copy = false;
mnuPaste.Enabled = true;
treeView1.SelectedNode.Remove();
}
private void mnuPaste_Click(object sender, EventArgs e)
{
File.Copy(pathName, stripExtraSlash(treeView1.SelectedNode.FullPath) + @”” + fileName, true);
System.Windows.Forms.TreeNode node = new System.Windows.Forms.TreeNode();
node.Text = fileName;
node.ImageIndex = icoFile;
node.SelectedImageIndex = icoFile;
treeView1.SelectedNode.Nodes.Add(node);
if (!copy){
File.Delete(pathName);
}
mnuPaste.Enabled = false;
}
private void mnuDelete_Click(object sender, EventArgs e)
{
File.Delete(stripExtraSlash(treeView1.SelectedNode.FullPath));
treeView1.SelectedNode.Remove();
}
private void menuItem1_Click(object sender, EventArgs e)
{
this.Close();
}
private void Tree_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
this.OnNotifyParent();
}
private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{
this.pathName = stripExtraSlash(treeView1.SelectedNode.FullPath);
}
}
}
private void menuItem2_Click(object sender, EventArgs e)
{
Explorer.Tree exp = new Explorer.Tree();
exp.NotifyParent += new EventHandler(tree_NotifyParent);
exp.Show();
}
private void tree_NotifyParent(object sender, EventArgs e)
{
this.textBox1.Text= sender.ToString();
if (this.textBox1.Text != String.Empty)
{
System.Drawing.Bitmap bmp = new Bitmap(this.textBox1.Text);
this.pictureBox1.Image = bmp;
this.pictureBox1.Show();
}
}