using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Data; public class Form1 : System.Windows.Forms.Form { private System.Windows.Forms.ListView lvCountries; private System.Windows.Forms.ImageList imgLarge; private System.Windows.Forms.ImageList imgSmall; private System.Windows.Forms.ComboBox cbView; private System.Windows.Forms.Label lblAbbreviation; private System.ComponentModel.IContainer components; public Form1() { InitializeComponent(); lvCountries.Items.Add(new CountryItem("United States", "US", "Dollar")); lvCountries.Items[0].ImageIndex = 0; lvCountries.Items.Add(new CountryItem("Great Britain", "GB", "Pound")); lvCountries.Items[1].ImageIndex = 1; lvCountries.Items.Add(new CountryItem("Canada", "CA", "Dollar")); lvCountries.Items[2].ImageIndex = 2; lvCountries.Items.Add(new CountryItem("Japan", "JP", "Yen")); lvCountries.Items[3].ImageIndex = 3; lvCountries.Items.Add(new CountryItem("Germany", "GM", "Deutch Mark")); lvCountries.Items[4].ImageIndex = 4; cbView.Items.Add(View.LargeIcon); cbView.Items.Add(View.SmallIcon); cbView.Items.Add(View.List); cbView.Items.Add(View.Details); cbView.SelectedIndex = 0; lvCountries.Columns.Add("Country",100, HorizontalAlignment.Left); lvCountries.Columns.Add("Currency",100, HorizontalAlignment.Left); } private void InitializeComponent() { this.components = new System.ComponentModel.Container(); this.lvCountries = new System.Windows.Forms.ListView(); this.imgLarge = new System.Windows.Forms.ImageList(this.components); this.imgSmall = new System.Windows.Forms.ImageList(this.components); this.cbView = new System.Windows.Forms.ComboBox(); this.lblAbbreviation = new System.Windows.Forms.Label(); this.SuspendLayout(); this.lvCountries.LargeImageList = this.imgLarge; this.lvCountries.Location = new System.Drawing.Point(24, 72); this.lvCountries.Name = "lvCountries"; this.lvCountries.Size = new System.Drawing.Size(256, 248); this.lvCountries.SmallImageList = this.imgSmall; this.lvCountries.TabIndex = 0; this.lvCountries.MouseUp += new System.Windows.Forms.MouseEventHandler(this.lvCountries_MouseUp); this.imgLarge.ImageSize = new System.Drawing.Size(48, 48); this.imgLarge.TransparentColor = System.Drawing.Color.Transparent; this.imgSmall.ColorDepth = System.Windows.Forms.ColorDepth.Depth16Bit; this.imgSmall.ImageSize = new System.Drawing.Size(16, 16); this.imgSmall.TransparentColor = System.Drawing.Color.Transparent; // // cbView // this.cbView.Location = new System.Drawing.Point(32, 32); this.cbView.Name = "cbView"; this.cbView.Size = new System.Drawing.Size(128, 21); this.cbView.TabIndex = 1; this.cbView.SelectedIndexChanged += new System.EventHandler(this.cbView_SelectedIndexChanged); // // lblAbbreviation // this.lblAbbreviation.Location = new System.Drawing.Point(176, 32); this.lblAbbreviation.Name = "lblAbbreviation"; this.lblAbbreviation.Size = new System.Drawing.Size(48, 23); this.lblAbbreviation.TabIndex = 2; // // Form1 // this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); this.ClientSize = new System.Drawing.Size(312, 339); this.Controls.Add(this.lblAbbreviation); this.Controls.Add(this.cbView); this.Controls.Add(this.lvCountries); this.Name = "Form1"; this.Text = "Form1"; this.ResumeLayout(false); } static void Main() { Application.Run(new Form1()); } private void cbView_SelectedIndexChanged(object sender, System.EventArgs e) { lvCountries.View = (View)cbView.SelectedItem; } private void lvCountries_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e) { if(lvCountries.View != View.Details) lblAbbreviation.Text = ((CountryItem)lvCountries.GetItemAt(e.X, e.Y)).CountryAbbreviation; else lblAbbreviation.Text = ((CountryItem)lvCountries.GetItemAt(5, e.Y)).CountryAbbreviation; } } public class CountryItem : System.Windows.Forms.ListViewItem { string countryName = ""; string countryAbbrev = ""; public CountryItem(string countryName, string countryAbbreviation, string currency) { countryName = countryName; countryAbbrev = countryAbbreviation; base.Text = countryName; base.SubItems.Add(currency); } public string CountryName { get {return countryName;} } public string CountryAbbreviation { get {return countryAbbrev;} } }
GUI Windows Form
Add Data to a ListView
using System; using System.Windows.Forms; using System.IO; public class TagPropertyExample : System.Windows.Forms.Form { ListView listView = new ListView(); public TagPropertyExample () { listView.Left = 10; listView.Top = 10; listView.Size = new System.Drawing.Size(292, 273); DirectoryInfo directory = new DirectoryInfo("C:"); FileInfo[] files = directory.GetFiles(); foreach (FileInfo file in files) { ListViewItem item = listView.Items.Add(file.Name); item.ImageIndex = 0; item.Tag = file; } this.Controls.Add(listView); } public static void Main(){ Application.Run(new TagPropertyExample()); } }
Sort a List View by Any Column
using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Data; using System.IO; public class Form1 : System.Windows.Forms.Form { private System.Windows.Forms.ListView listView1; private System.Windows.Forms.ColumnHeader lvcState; private System.Windows.Forms.ColumnHeader lvcCapital; public Form1() { InitializeComponent(); listView1.Items.Add (new ListViewItem (new string[]{"a","d"})); listView1.Items.Add (new ListViewItem (new string[]{"b","c"})); listView1.Items.Add (new ListViewItem (new string[]{"c","b"})); listView1.Items.Add (new ListViewItem (new string[]{"d","a"})); listView1.View = View.Details; } private void InitializeComponent() { this.listView1 = new System.Windows.Forms.ListView(); this.lvcState = new System.Windows.Forms.ColumnHeader(); this.lvcCapital = new System.Windows.Forms.ColumnHeader(); this.SuspendLayout(); this.listView1.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { this.lvcState, this.lvcCapital}); this.listView1.FullRowSelect = true; this.listView1.Location = new System.Drawing.Point(0, 32); this.listView1.MultiSelect = false; this.listView1.Name = "listView1"; this.listView1.Size = new System.Drawing.Size(292, 160); this.listView1.Sorting = System.Windows.Forms.SortOrder.Descending; this.listView1.TabIndex = 3; this.listView1.ColumnClick += new System.Windows.Forms.ColumnClickEventHandler(this.listView1_OnColumnClick); this.listView1.SelectedIndexChanged += new System.EventHandler(this.listView1_OnSelectedIndexChanged); // // lvcState // this.lvcState.Text = "State Name"; this.lvcState.Width = 120; // // lvcCapital // this.lvcCapital.Text = "Capital City"; this.lvcCapital.Width = 120; // // Form1 // this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); this.ClientSize = new System.Drawing.Size(292, 273); this.Controls.AddRange(new System.Windows.Forms.Control[] { this.listView1, }); this.MinimumSize = new System.Drawing.Size(300, 300); this.Name = "Form1"; this.Text = "The State Flags"; this.ResumeLayout(false); } static void Main() { Application.Run(new Form1()); } private void listView1_OnColumnClick(object sender, System.Windows.Forms.ColumnClickEventArgs e) { ListViewSorter Sorter = new ListViewSorter(); listView1.ListViewItemSorter = Sorter; if (!(listView1.ListViewItemSorter is ListViewSorter)) return; Sorter = (ListViewSorter) listView1.ListViewItemSorter; if (Sorter.LastSort == e.Column) { if (listView1.Sorting == SortOrder.Ascending) listView1.Sorting = SortOrder.Descending; else listView1.Sorting = SortOrder.Ascending; } else{ listView1.Sorting = SortOrder.Descending; } Sorter.ByColumn = e.Column; listView1.Sort (); } private void listView1_OnSelectedIndexChanged(object sender, System.EventArgs e) { if (listView1.SelectedItems.Count == 0) { return; } string State = listView1.SelectedItems[0].SubItems[0].Text; string Capital = listView1.SelectedItems[0].SubItems[1].Text; if (State.Length > 0) { Console.WriteLine(State + " " + Capital); } } } public class ListViewSorter : System.Collections.IComparer { public int Compare (object o1, object o2) { if (!(o1 is ListViewItem)) return (0); if (!(o2 is ListViewItem)) return (0); ListViewItem lvi1 = (ListViewItem) o2; string str1 = lvi1.SubItems[ByColumn].Text; ListViewItem lvi2 = (ListViewItem) o1; string str2 = lvi2.SubItems[ByColumn].Text; int result; if (lvi1.ListView.Sorting == SortOrder.Ascending) result = String.Compare (str1, str2); else result = String.Compare (str2, str1); LastSort = ByColumn; return (result); } public int ByColumn { get {return Column;} set {Column = value;} } int Column = 0; public int LastSort { get {return LastColumn;} set {LastColumn = value;} } int LastColumn = 0; }
Set ColumnHeader for ListView
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
public class Form1 : System.Windows.Forms.Form {
private System.Windows.Forms.ListView listView1 = new System.Windows.Forms.ListView();
private System.Windows.Forms.ColumnHeader Country= new System.Windows.Forms.ColumnHeader();
private System.Windows.Forms.ColumnHeader Capital= new System.Windows.Forms.ColumnHeader();
private System.Windows.Forms.ColumnHeader City_1= new System.Windows.Forms.ColumnHeader();
private System.Windows.Forms.ColumnHeader City_2= new System.Windows.Forms.ColumnHeader();
private System.Windows.Forms.Button REPORT= new System.Windows.Forms.Button();
private System.Windows.Forms.Button LIST= new System.Windows.Forms.Button();
private System.Windows.Forms.Button SMALLICON= new System.Windows.Forms.Button();
private System.Windows.Forms.Button LARGEICON= new System.Windows.Forms.Button();
ImageList ig = new ImageList();
private System.Windows.Forms.Button SELECTED= new System.Windows.Forms.Button();
private System.Windows.Forms.Button CHECKED= new System.Windows.Forms.Button();
private System.Windows.Forms.Panel panel1= new System.Windows.Forms.Panel();
public Form1() {
this.panel1.SuspendLayout();
this.SuspendLayout();
//
this.listView1.AllowColumnReorder = true;
this.listView1.CheckBoxes = true;
this.listView1.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
this.Country,
this.Capital,
this.City_1,
this.City_2});
this.listView1.Dock = System.Windows.Forms.DockStyle.Top;
this.listView1.Font = new System.Drawing.Font(“Microsoft Sans Serif”, 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));
this.listView1.ForeColor = System.Drawing.SystemColors.HotTrack;
this.listView1.FullRowSelect = true;
this.listView1.Size = new System.Drawing.Size(464, 152);
this.listView1.TabIndex = 0;
this.listView1.View = System.Windows.Forms.View.Details;
this.listView1.ColumnClick += new System.Windows.Forms.ColumnClickEventHandler(this.listView1_ColumnClick);
this.listView1.SelectedIndexChanged += new System.EventHandler(this.listView1_SelectedIndexChanged);
//
// Country
//
this.Country.Text = “Country”;
this.Country.Width = 100;
//
// Capital
//
this.Capital.Text = “Capital”;
this.Capital.Width = 150;
//
// City_1
//
this.City_1.Text = “City_1”;
this.City_1.Width = 100;
//
// City_2
//
this.City_2.Text = “City_2”;
this.City_2.Width = 100;
//
// REPORT
//
this.REPORT.Dock = System.Windows.Forms.DockStyle.Left;
this.REPORT.Location = new System.Drawing.Point(75, 0);
this.REPORT.Name = “REPORT”;
this.REPORT.Size = new System.Drawing.Size(75, 24);
this.REPORT.TabIndex = 1;
this.REPORT.Text = “Report”;
this.REPORT.Click += new System.EventHandler(this.REPORT_Click);
//
// LIST
//
this.LIST.Dock = System.Windows.Forms.DockStyle.Left;
this.LIST.Location = new System.Drawing.Point(300, 0);
this.LIST.Name = “LIST”;
this.LIST.Size = new System.Drawing.Size(75, 24);
this.LIST.TabIndex = 1;
this.LIST.Text = “List”;
this.LIST.Click += new System.EventHandler(this.LIST_Click);
//
// SMALLICON
//
this.SMALLICON.Dock = System.Windows.Forms.DockStyle.Left;
this.SMALLICON.Location = new System.Drawing.Point(150, 0);
this.SMALLICON.Name = “SMALLICON”;
this.SMALLICON.Size = new System.Drawing.Size(75, 24);
this.SMALLICON.TabIndex = 1;
this.SMALLICON.Text = “Small Icon”;
this.SMALLICON.Click += new System.EventHandler(this.SMALLICON_Click);
//
// LARGEICON
//
this.LARGEICON.Dock = System.Windows.Forms.DockStyle.Left;
this.LARGEICON.Location = new System.Drawing.Point(375, 0);
this.LARGEICON.Name = “LARGEICON”;
this.LARGEICON.Size = new System.Drawing.Size(75, 24);
this.LARGEICON.TabIndex = 1;
this.LARGEICON.Text = “Large Icon”;
this.LARGEICON.Click += new System.EventHandler(this.LARGEICON_Click);
//
// SELECTED
//
this.SELECTED.Dock = System.Windows.Forms.DockStyle.Left;
this.SELECTED.Name = “SELECTED”;
this.SELECTED.Size = new System.Drawing.Size(75, 24);
this.SELECTED.TabIndex = 2;
this.SELECTED.Text = “Selected”;
this.SELECTED.Click += new System.EventHandler(this.SELECTED_Click);
//
// CHECKED
//
this.CHECKED.Dock = System.Windows.Forms.DockStyle.Left;
this.CHECKED.Location = new System.Drawing.Point(225, 0);
this.CHECKED.Name = “CHECKED”;
this.CHECKED.Size = new System.Drawing.Size(75, 24);
this.CHECKED.TabIndex = 3;
this.CHECKED.Text = “Checked”;
this.CHECKED.Click += new System.EventHandler(this.CHECKED_Click);
//
// panel1
//
this.panel1.Controls.AddRange(new System.Windows.Forms.Control[] {
this.LARGEICON,
this.LIST,
this.CHECKED,
this.SMALLICON,
this.REPORT,
this.SELECTED});
this.panel1.Dock = System.Windows.Forms.DockStyle.Bottom;
this.panel1.Location = new System.Drawing.Point(0, 157);
this.panel1.Name = “panel1”;
this.panel1.Size = new System.Drawing.Size(464, 24);
this.panel1.TabIndex = 4;
//
// Form1
//
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(464, 181);
this.Controls.AddRange(new System.Windows.Forms.Control[] {
this.panel1,
this.listView1});
this.Name = “Form1”;
this.Text = “ListView”;
this.Load += new System.EventHandler(this.Form1_Load);
this.panel1.ResumeLayout(false);
this.ResumeLayout(false);
}
[STAThread]
static void Main() {
Application.Run(new Form1());
}
private void Form1_Load(object sender, System.EventArgs e) {
ig.Images.Add(new Icon(“FLGUSA01.ICO”));
ig.Images.Add(new Icon(“CTRITALY.ICO”));
ig.Images.Add(new Icon(“FLGCAN.ICO”));
ig.Images.Add(new Icon(“FLGSWITZ.ICO”));
ig.Images.Add(new Icon(“FLGUK.ICO”));
listView1.SmallImageList = ig;
listView1.LargeImageList = ig;
listView1.Columns[1].TextAlign = HorizontalAlignment.Center;
listView1.Columns[2].TextAlign = HorizontalAlignment.Center;
listView1.Columns[3].TextAlign = HorizontalAlignment.Center;
string[] lv = new String[4];
lv[0] = “A”;
lv[1] = “A1”;
lv[2] = “A2”;
lv[3] = “A3”;
listView1.Items.Add(new ListViewItem(lv, 0));
lv[0] = “B”;
lv[1] = “B1”;
lv[2] = “B2”;
lv[3] = “B3”;
listView1.Items.Add(new ListViewItem(lv, 1));
lv[0] = “C”;
lv[1] = “C1”;
lv[2] = “C2”;
lv[3] = “C3”;
listView1.Items.Add(new ListViewItem(lv, 2));
lv[0] = “D”;
lv[1] = “D1”;
lv[2] = “D2”;
lv[3] = “D3”;
listView1.Items.Add(new ListViewItem(lv, 3));
lv[0] = “E”;
lv[1] = “E1”;
lv[2] = “E2”;
lv[3] = “E3”;
listView1.Items.Add(new ListViewItem(lv, 4));
for (int j = 0; j < listView1.Items.Count; j++) { ListViewItem lvi = listView1.Items[j]; for (int i = 0; i < lvi.SubItems.Count; i++) { Console.WriteLine(lvi.SubItems[i].Text); } } } private void REPORT_Click(object sender, System.EventArgs e) { this.Text = "Report View"; listView1.View = View.Details; } private void LARGEICON_Click(object sender, System.EventArgs e) { this.Text = "LargeIcon View"; listView1.View = View.LargeIcon; } private void SMALLICON_Click(object sender, System.EventArgs e) { this.Text = "SmallIcon View"; listView1.View = View.SmallIcon; } private void LIST_Click(object sender, System.EventArgs e) { this.Text = "List View"; listView1.View = View.List; } private void SELECTED_Click(object sender, System.EventArgs e) { for (int k = 0; k < listView1.SelectedIndices.Count; k++) { ListViewItem lvi = listView1.Items[listView1.SelectedIndices[k]]; for (int i = 0; i < lvi.SubItems.Count; i++) { Console.WriteLine(lvi.SubItems[i].Text); } } } private void CHECKED_Click(object sender, System.EventArgs e) { for (int k = 0; k < listView1.CheckedIndices.Count; k++) { ListViewItem lvi = listView1.Items[listView1.CheckedIndices[k]]; for (int i = 0; i < lvi.SubItems.Count; i++) { Console.WriteLine(lvi.SubItems[i].Text); } } } private void listView1_SelectedIndexChanged(object sender, System.EventArgs e) { } private void listView1_ColumnClick(object sender, System.Windows.Forms.ColumnClickEventArgs e) { if (listView1.Sorting == SortOrder.Descending) listView1.Sorting = SortOrder.Ascending; else listView1.Sorting = SortOrder.Descending; listView1.Sort(); } } [/csharp]
Folder Browser based on ListView
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.IO; public class Form1 : Form { private System.Windows.Forms.ListView browserListView; private System.Windows.Forms.Label currentLabel; private System.Windows.Forms.Label displayLabel; private System.Windows.Forms.ImageList fileFolder; string currentDirectory = Directory.GetCurrentDirectory(); public Form1() { InitializeComponent(); Image folderImage = Image.FromFile("winter.jpg" ); Image fileImage = Image.FromFile("winter.jpg" ); fileFolder.Images.Add( folderImage ); fileFolder.Images.Add( fileImage ); LoadFilesInDirectory( currentDirectory ); displayLabel.Text = currentDirectory; } private void browserListView_Click( object sender, EventArgs e ) { if ( browserListView.SelectedItems.Count != 0 ) { if ( browserListView.Items[0].Selected ) { DirectoryInfo directoryObject = new DirectoryInfo( currentDirectory ); if ( directoryObject.Parent != null ) LoadFilesInDirectory( directoryObject.Parent.FullName ); }else { string chosen = browserListView.SelectedItems[ 0 ].Text; if ( Directory.Exists( currentDirectory + @"" + chosen ) ) { if ( currentDirectory == @"C:" ) LoadFilesInDirectory( currentDirectory + chosen ); else LoadFilesInDirectory(currentDirectory + @"" + chosen ); } } displayLabel.Text = currentDirectory; } } public void LoadFilesInDirectory( string currentDirectoryValue ) { try { browserListView.Items.Clear(); browserListView.Items.Add( "Go Up One Level" ); currentDirectory = currentDirectoryValue; DirectoryInfo newCurrentDirectory = new DirectoryInfo( currentDirectory ); DirectoryInfo[] directoryArray = newCurrentDirectory.GetDirectories(); FileInfo[] fileArray = newCurrentDirectory.GetFiles(); foreach ( DirectoryInfo dir in directoryArray ) { ListViewItem newDirectoryItem = browserListView.Items.Add( dir.Name ); newDirectoryItem.ImageIndex = 0; } foreach ( FileInfo file in fileArray ) { ListViewItem newFileItem = browserListView.Items.Add( file.Name ); newFileItem.ImageIndex = 1; } } catch ( UnauthorizedAccessException ) { Console.WriteLine( "Unauthorized Access Exception"); } } private void InitializeComponent() { this.browserListView = new System.Windows.Forms.ListView(); this.fileFolder = new System.Windows.Forms.ImageList(new System.ComponentModel.Container()); this.currentLabel = new System.Windows.Forms.Label(); this.displayLabel = new System.Windows.Forms.Label(); this.SuspendLayout(); // // browserListView // this.browserListView.Location = new System.Drawing.Point(12, 60); this.browserListView.Name = "browserListView"; this.browserListView.Size = new System.Drawing.Size(456, 197); this.browserListView.SmallImageList = this.fileFolder; this.browserListView.TabIndex = 0; this.browserListView.View = System.Windows.Forms.View.List; this.browserListView.Click += new System.EventHandler(this.browserListView_Click); // // fileFolder // this.fileFolder.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit; this.fileFolder.ImageSize = new System.Drawing.Size(16, 16); this.fileFolder.TransparentColor = System.Drawing.Color.Transparent; // // currentLabel // this.currentLabel.AutoSize = true; this.currentLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.currentLabel.Location = new System.Drawing.Point(10, 19); this.currentLabel.Name = "currentLabel"; this.currentLabel.Size = new System.Drawing.Size(122, 20); this.currentLabel.TabIndex = 1; this.currentLabel.Text = "Now in Directory:"; // // displayLabel // this.displayLabel.AutoSize = true; this.displayLabel.Location = new System.Drawing.Point(138, 19); this.displayLabel.Name = "displayLabel"; this.displayLabel.Size = new System.Drawing.Size(0, 0); this.displayLabel.TabIndex = 2; // // ListViewTestForm // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(480, 270); this.Controls.Add(this.displayLabel); this.Controls.Add(this.currentLabel); this.Controls.Add(this.browserListView); this.Name = "ListViewTestForm"; this.Text = "ListViewTest"; this.ResumeLayout(false); this.PerformLayout(); } [STAThread] static void Main() { Application.EnableVisualStyles(); Application.Run(new Form1()); } }
ListView Item clicked event
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.IO; public class Form1 : Form { private System.Windows.Forms.ListView browserListView; private System.Windows.Forms.Label currentLabel; private System.Windows.Forms.Label displayLabel; private System.Windows.Forms.ImageList fileFolder; string currentDirectory = Directory.GetCurrentDirectory(); public Form1() { InitializeComponent(); Image folderImage = Image.FromFile("winter.jpg" ); Image fileImage = Image.FromFile("winter.jpg" ); fileFolder.Images.Add( folderImage ); fileFolder.Images.Add( fileImage ); LoadFilesInDirectory( currentDirectory ); displayLabel.Text = currentDirectory; } private void browserListView_Click( object sender, EventArgs e ) { if ( browserListView.SelectedItems.Count != 0 ) { if ( browserListView.Items[0].Selected ) { DirectoryInfo directoryObject = new DirectoryInfo( currentDirectory ); if ( directoryObject.Parent != null ) LoadFilesInDirectory( directoryObject.Parent.FullName ); }else { string chosen = browserListView.SelectedItems[ 0 ].Text; if ( Directory.Exists( currentDirectory + @"" + chosen ) ) { if ( currentDirectory == @"C:" ) LoadFilesInDirectory( currentDirectory + chosen ); else LoadFilesInDirectory(currentDirectory + @"" + chosen ); } } displayLabel.Text = currentDirectory; } } public void LoadFilesInDirectory( string currentDirectoryValue ) { try { browserListView.Items.Clear(); browserListView.Items.Add( "Go Up One Level" ); currentDirectory = currentDirectoryValue; DirectoryInfo newCurrentDirectory = new DirectoryInfo( currentDirectory ); DirectoryInfo[] directoryArray = newCurrentDirectory.GetDirectories(); FileInfo[] fileArray = newCurrentDirectory.GetFiles(); foreach ( DirectoryInfo dir in directoryArray ) { ListViewItem newDirectoryItem = browserListView.Items.Add( dir.Name ); newDirectoryItem.ImageIndex = 0; } foreach ( FileInfo file in fileArray ) { ListViewItem newFileItem = browserListView.Items.Add( file.Name ); newFileItem.ImageIndex = 1; } } catch ( UnauthorizedAccessException ) { Console.WriteLine( "Unauthorized Access Exception"); } } private void InitializeComponent() { this.browserListView = new System.Windows.Forms.ListView(); this.fileFolder = new System.Windows.Forms.ImageList(new System.ComponentModel.Container()); this.currentLabel = new System.Windows.Forms.Label(); this.displayLabel = new System.Windows.Forms.Label(); this.SuspendLayout(); // // browserListView // this.browserListView.Location = new System.Drawing.Point(12, 60); this.browserListView.Name = "browserListView"; this.browserListView.Size = new System.Drawing.Size(456, 197); this.browserListView.SmallImageList = this.fileFolder; this.browserListView.TabIndex = 0; this.browserListView.View = System.Windows.Forms.View.List; this.browserListView.Click += new System.EventHandler(this.browserListView_Click); // // fileFolder // this.fileFolder.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit; this.fileFolder.ImageSize = new System.Drawing.Size(16, 16); this.fileFolder.TransparentColor = System.Drawing.Color.Transparent; // // currentLabel // this.currentLabel.AutoSize = true; this.currentLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.currentLabel.Location = new System.Drawing.Point(10, 19); this.currentLabel.Name = "currentLabel"; this.currentLabel.Size = new System.Drawing.Size(122, 20); this.currentLabel.TabIndex = 1; this.currentLabel.Text = "Now in Directory:"; // // displayLabel // this.displayLabel.AutoSize = true; this.displayLabel.Location = new System.Drawing.Point(138, 19); this.displayLabel.Name = "displayLabel"; this.displayLabel.Size = new System.Drawing.Size(0, 0); this.displayLabel.TabIndex = 2; // // ListViewTestForm // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(480, 270); this.Controls.Add(this.displayLabel); this.Controls.Add(this.currentLabel); this.Controls.Add(this.browserListView); this.Name = "ListViewTestForm"; this.Text = "ListViewTest"; this.ResumeLayout(false); this.PerformLayout(); } [STAThread] static void Main() { Application.EnableVisualStyles(); Application.Run(new Form1()); } }
Dragging and dropping between ListView
using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Data; public class Form1 : System.Windows.Forms.Form { private System.Windows.Forms.ListView listView1= new System.Windows.Forms.ListView(); private System.Windows.Forms.ListView listView2= new System.Windows.Forms.ListView(); private System.ComponentModel.Container components = null; System.Windows.Forms.ListViewItem listViewItem1 = new System.Windows.Forms.ListViewItem("List 2 Item 1"); System.Windows.Forms.ListViewItem listViewItem2 = new System.Windows.Forms.ListViewItem("List 2 Item 2"); System.Windows.Forms.ListViewItem listViewItem3 = new System.Windows.Forms.ListViewItem("List 2 Item 3"); System.Windows.Forms.ListViewItem listViewItem4 = new System.Windows.Forms.ListViewItem("Item 1"); System.Windows.Forms.ListViewItem listViewItem5 = new System.Windows.Forms.ListViewItem("Item 2"); System.Windows.Forms.ListViewItem listViewItem6 = new System.Windows.Forms.ListViewItem("Item 3"); public Form1() { this.SuspendLayout(); this.listView2.AllowDrop = true; listViewItem1.UseItemStyleForSubItems = false; listViewItem2.UseItemStyleForSubItems = false; listViewItem3.UseItemStyleForSubItems = false; this.listView2.Items.AddRange(new System.Windows.Forms.ListViewItem[]{ listViewItem1,listViewItem2,listViewItem3}); this.listView2.Location = new System.Drawing.Point(320, 24); this.listView2.Size = new System.Drawing.Size(200, 216); this.listView2.View = System.Windows.Forms.View.List; this.listView2.DragDrop += new System.Windows.Forms.DragEventHandler(this.OnDragDrop); this.listView2.DragEnter += new System.Windows.Forms.DragEventHandler(this.OnDragEnter); this.listView1.AllowDrop = true; listViewItem4.UseItemStyleForSubItems = false; listViewItem5.UseItemStyleForSubItems = false; listViewItem6.UseItemStyleForSubItems = false; this.listView1.Items.AddRange(new System.Windows.Forms.ListViewItem[] { listViewItem4, listViewItem5, listViewItem6 }); this.listView1.Location = new System.Drawing.Point(40, 24); this.listView1.Size = new System.Drawing.Size(200, 216); this.listView1.View = System.Windows.Forms.View.List; this.listView1.ItemDrag += new System.Windows.Forms.ItemDragEventHandler(this.OnItemDrag); this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); this.ClientSize = new System.Drawing.Size(576, 273); this.Controls.AddRange(new System.Windows.Forms.Control[] { this.listView2, this.listView1 }); this.ResumeLayout(false); } [STAThread] static void Main() { Application.Run(new Form1()); } private void OnItemDrag(object sender, System.Windows.Forms.ItemDragEventArgs e) { string s = e.Item.ToString(); DoDragDrop(s, DragDropEffects.Copy | DragDropEffects.Move); } private void OnDragEnter(object sender, System.Windows.Forms.DragEventArgs e) { if (e.Data.GetDataPresent(DataFormats.Text)) e.Effect = DragDropEffects.Copy; else e.Effect = DragDropEffects.None; } private void OnDragDrop(object sender, System.Windows.Forms.DragEventArgs e) { string typestring = "Type"; string s = e.Data.GetData(typestring.GetType()).ToString(); string orig_string = s; s = s.Substring(s.IndexOf(":") + 1).Trim(); s = s.Substring(1, s.Length - 2); this.listView2.Items.Add(s); IEnumerator enumerator = listView1.Items.GetEnumerator(); int whichIdx = -1; int idx = 0; while (enumerator.MoveNext()) { string s2 = enumerator.Current.ToString(); if (s2.Equals(orig_string)) { whichIdx = idx; break; } idx++; } this.listView1.Items.RemoveAt(whichIdx); } }