首页 > 其他分享 >12.09

12.09

时间:2023-12-09 14:46:48浏览次数:30  
标签:string using System aItem 12.09 ListViewItem dirNode

今天利用上午时间完成了.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 选择项更改的逻辑
}

 

 

}
}

 

标签:string,using,System,aItem,12.09,ListViewItem,dirNode
From: https://www.cnblogs.com/zhaoshengfu/p/17890926.html

相关文章

  • 2022.12.09(补) 图书馆管理系统
    Book.java:文件  public class Book{    private int id;    private Stringname;    private Stringauthor;    private double pri......
  • 2022.12.09深圳大头兄弟面试记录
    大头兄弟2022/12/9没回答好的问题:1px问题算法-->动态规划-->n个台阶回流和重绘父子组件的生命周期-->子组件的mount执行在父组件的mount之前diff算法Arr......
  • 12.09
    今日内容1.静态文件2.静态相关文件配置3.form表单4.request对象5.pycharm连接数据库6.django连接数据库7.ORM简介8.ORM基本操作9.ORM基本语句1.静态文件1.编写......