c# ListView

时间:2023-03-08 18:54:19
c# ListView

c# ListView

c# ListView

c# ListView

c# ListView

  // Attempt to run the file.
System.Diagnostics.Process.Start(filename);
//folderCol 可以存放一个路径的   栈(用于返回功能的设计)
private System.Collections.Specialized.StringCollection folderCol;
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; namespace ListView
{
public partial class Form1 : Form
{
private System.Collections.Specialized.StringCollection folderCol; public Form1()
{
InitializeComponent(); // Init ListView and folder collection
folderCol = new System.Collections.Specialized.StringCollection();
CreateHeadersAndFillListView();
PaintListView(@"C:\");
folderCol.Add(@"C:\"); } private void CreateHeadersAndFillListView()
{
ColumnHeader colHead; // First header
colHead = new ColumnHeader();
colHead.Text = "Filename";
listViewFilesAndFolders.Columns.Add(colHead); // Insert the header // Second header
colHead = new ColumnHeader();
colHead.Text = "Size";
listViewFilesAndFolders.Columns.Add(colHead); // Insert the header // Third header
colHead = new ColumnHeader();
colHead.Text = "Last accessed";
listViewFilesAndFolders.Columns.Add(colHead); // Insert the header
} private void PaintListView(string root)
{
try
{
// Two local variables that are used to create the items to insert
ListViewItem lvi;
ListViewItem.ListViewSubItem lvsi; // If there’s no root folder, we can’t insert anything.
if (string.IsNullOrEmpty(root))
return; // Get information about the root folder.
DirectoryInfo dir = new DirectoryInfo(root); // Retrieve the files and folders from the root folder.
DirectoryInfo[] dirs = dir.GetDirectories(); // Folders
FileInfo[] files = dir.GetFiles(); // Files // Clear the ListView. Note that we call the Clear method on the
// Items collection rather than on the ListView itself.
// The Clear method of the ListView remove everything, including column
// headers, and we only want to remove the items from the view.
listViewFilesAndFolders.Items.Clear(); // Set the label with the current path.
labelCurrentPath.Text = root; // Lock the ListView for updates.
listViewFilesAndFolders.BeginUpdate(); // Loop through all folders in the root folder and insert them.
foreach (DirectoryInfo di in dirs)
{
// Create the main ListViewItem.
lvi = new ListViewItem();
lvi.Text = di.Name; // Folder name
lvi.ImageIndex = ; // The folder icon has index 0
lvi.Tag = di.FullName; // Set the tag to the qualified path of the
// folder // Create the two ListViewSubItems.
lvsi = new ListViewItem.ListViewSubItem();
lvsi.Text = ""; // Size—a folder has no size and so this column
// is empty
lvi.SubItems.Add(lvsi); // Add the subitem to the ListViewItem lvsi = new ListViewItem.ListViewSubItem();
lvsi.Text = di.LastAccessTime.ToString(); // Last accessed column
lvi.SubItems.Add(lvsi); // Add the subitem to the ListViewItem. // Add the ListViewItem to the Items collection of the ListView.
listViewFilesAndFolders.Items.Add(lvi);
} // Loop through all the files in the root folder.
foreach (FileInfo fi in files)
{
// Create the main ListViewItem.
lvi = new ListViewItem();
lvi.Text = fi.Name; // Filename
lvi.ImageIndex = ; // The icon we use to represent a folder has
// index 1.
lvi.Tag = fi.FullName; // Set the tag to the qualified path of the
// file. // Create the two subitems.
lvsi = new ListViewItem.ListViewSubItem();
lvsi.Text = fi.Length.ToString(); // Length of the file
lvi.SubItems.Add(lvsi); // Add to the SubItems collection lvsi = new ListViewItem.ListViewSubItem();
lvsi.Text = fi.LastAccessTime.ToString(); // Last Accessed Column
lvi.SubItems.Add(lvsi); // Add to the SubItems collection // Add the item to the Items collection of the ListView.
listViewFilesAndFolders.Items.Add(lvi);
} // Unlock the ListView. The items that have been inserted will now
// be displayed.
listViewFilesAndFolders.EndUpdate();
}
catch (System.Exception err)
{
MessageBox.Show("Error: " + err.Message);
}
} private void listViewFilesAndFolders_ItemActivate(object sender, EventArgs e)
{
// Cast the sender to a ListView and get the tag of the first selected
// item.
System.Windows.Forms.ListView lw = (System.Windows.Forms.ListView)sender;
string filename = lw.SelectedItems[].Tag.ToString(); if (lw.SelectedItems[].ImageIndex != )
{
try
{
// Attempt to run the file.
System.Diagnostics.Process.Start(filename);
}
catch
{
// If the attempt fails we simply exit the method.
return;
}
}
else
{
// Insert the items.
PaintListView(filename);
folderCol.Add(filename);
}
} private void buttonBack_Click(object sender, EventArgs e)
{
if (folderCol.Count > )
{
PaintListView(folderCol[folderCol.Count - ].ToString());
folderCol.RemoveAt(folderCol.Count - );
}
else
PaintListView(folderCol[].ToString());
} private void radioButtonLargeIcon_CheckedChanged(object sender, EventArgs e)
{
RadioButton rdb = (RadioButton)sender;
if (rdb.Checked)
this.listViewFilesAndFolders.View = View.LargeIcon;
} private void radioButtonSmallIcon_CheckedChanged(object sender, EventArgs e)
{
RadioButton rdb = (RadioButton)sender;
if (rdb.Checked)
this.listViewFilesAndFolders.View = View.SmallIcon;
} private void radioButtonList_CheckedChanged(object sender, EventArgs e)
{
RadioButton rdb = (RadioButton)sender;
if (rdb.Checked)
this.listViewFilesAndFolders.View = View.List;
} private void radioButtonDetails_CheckedChanged(object sender, EventArgs e)
{
RadioButton rdb = (RadioButton)sender;
if (rdb.Checked)
this.listViewFilesAndFolders.View = View.Details;
} private void radioButtonTile_CheckedChanged(object sender, EventArgs e)
{
RadioButton rdb = (RadioButton)sender;
if (rdb.Checked)
this.listViewFilesAndFolders.View = View.Tile;
}
}
}