12.09

发布时间 2023-12-09 14:37:12作者: 想不起来好名字
今天利用上午时间完成了.netc#的实验四

编写一个简易的文件管理器,通过本次实验,练习 TreeView、ListView 和

SplitContainer 控件的使用,同时熟悉 C#文件系统的操作方法以及 File 类和 Directory类的使用。 

Windows窗体应用程序,实现了一个简单的文件浏览器界面。界面分为左右两个部分,左侧是TreeView控件用于显示文件夹结构,右侧是ListView控件用于显示所选文件夹中的文件和子文件夹。通过TreeView控件来导航文件夹,用户可以展开文件夹节点以显示子文件夹。选中文件夹节点后,通过调用listViewShow和DirTreeShow方法更新ListView和TreeView的内容,实现了动态展示文件夹中的文件和子文件夹。本次实验我开始不会 SplitContainer 控件的使用,后来我知道了的 Dock 属性设置为 Fill,以使其填充整个窗体。其他两个控件分别插入左右填满整个空间,设置属性值 ListView 的 MultiSelect 属性设置为 False,以限制只能选择一个项。本次实验我学会了这些控件的使用学会创建一个简单的文件管理系统,c#语言真奇妙

 

 

 

 

 

 

 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using static System.Windows.Forms.VisualStyles.VisualStyleElement;

namespace WindowsFormsApp4
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
TreeNode myComputerNode = new TreeNode("我的电脑"); treeView2.Nodes.Add(myComputerNode);
listViewShow(myComputerNode);
}

private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{

}

private void listView1_SelectedIndexChanged(object sender, EventArgs e)
{

}

private void splitContainer1_Panel1_Paint(object sender, PaintEventArgs e)
{

}

private void splitContainer1_Panel2_Paint(object sender, PaintEventArgs e)
{

}

 

private void treeView2_AfterSelect(object sender, TreeViewEventArgs e)
{
listViewShow(e.Node);
DirTreeShow(e.Node);
}
private void listViewShow(TreeNode dirNode)
{
listView2.Clear();
if (dirNode.Parent == null)
{
foreach (string DrvName in Directory.GetLogicalDrives())
{
ListViewItem aItem = new ListViewItem(DrvName);
listView2.Items.Add(aItem);
}
}
else
{
foreach (string DirName in Directory.GetDirectories((string)dirNode.Tag))
{
ListViewItem aItem = new ListViewItem(DirName);
listView2.Items.Add(aItem);
}
foreach (string fileName in Directory.GetFiles((string)dirNode.Tag))
{
ListViewItem aItem = new ListViewItem(fileName);
listView2.Items.Add(aItem);
}
}
}


private void listViewShow(string dirName)
{
listView2.Clear();
try
{
foreach (string DirName in Directory.GetDirectories(dirName))
{
ListViewItem aItem = new ListViewItem(DirName);
listView2.Items.Add(aItem);
}
foreach (string fileName in Directory.GetFiles(dirName))
{
ListViewItem aItem = new ListViewItem(fileName);
listView2.Items.Add(aItem);
}
}
catch
{
}
}
private void DirTreeShow(TreeNode dirNode)
{
try
{
if (dirNode.Nodes.Count == 0)
{
if (dirNode.Parent == null)
{
foreach (string DrvName in Directory.GetLogicalDrives())
{
TreeNode aNode = new TreeNode(DrvName);
aNode.Tag = DrvName;
dirNode.Nodes.Add(aNode);
}
}
}
else
{
foreach (string DirName in Directory.GetDirectories((string)dirNode.Tag))
{
TreeNode aNode = new TreeNode(DirName);
aNode.Tag = DirName;
dirNode.Nodes.Add(aNode);
}
}
}
catch
{
}
}

 

private void listView2_SelectedIndexChanged(object sender, EventArgs e)
{
// 处理 listView2 选择项更改的逻辑
}

 

 

}
}