Csharp/C Sharp/GUI Windows Form/ListView — различия между версиями
Admin (обсуждение | вклад) м (1 версия) |
Admin (обсуждение | вклад) м (1 версия) |
(нет различий)
|
Текущая версия на 14:33, 26 мая 2010
Содержание
- 1 Add Data to a ListView
- 2 Add ListView column and insert ListView rows
- 3 Display Directory info in a ListView
- 4 Dragging and dropping between ListView
- 5 Extends ListViewItem
- 6 Folder Browser based on ListView
- 7 ListView Country: image and font
- 8 ListView Example
- 9 ListView Item clicked event
- 10 Set ColumnHeader for ListView
- 11 Sort a List View by Any Column
- 12 Use ListViewItem to display file information
- 13 Use ListView to diaplay folder info and double click to enter that directory
- 14 Use ListView to display File info: name, size and date
- 15 Use ListView to display file name and double click the name to execute that file
- 16 Use RadioButton to control the ListView display style
- 17 Windows Explorer-Like Program: extends ListView
Add Data to a ListView
<source lang="csharp"> 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()); }
}
</source>
Add ListView column and insert ListView rows
<source lang="csharp"> using System; using System.Drawing; using System.Collections; using System.ruponentModel; using System.Windows.Forms; using System.Data; using System.IO; namespace ListView {
public class Form1 : System.Windows.Forms.Form { private System.Collections.Specialized.StringCollection folderCol; private System.Windows.Forms.ImageList ilLarge; private System.Windows.Forms.ImageList ilSmall; private System.Windows.Forms.ListView lwFilesAndFolders; private System.Windows.Forms.Label lblCurrentPath; public Form1() { InitializeComponent(); // Init ListView and folder collection folderCol = new System.Collections.Specialized.StringCollection(); CreateHeadersAndFillListView(); PaintListView(@"C:\"); folderCol.Add(@"C:\"); this.lwFilesAndFolders.ItemActivate += new System.EventHandler(this.lwFilesAndFolders_ItemActivate); } private void InitializeComponent() {
// System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(Form1));
this.lblCurrentPath = new System.Windows.Forms.Label(); this.ilLarge = new System.Windows.Forms.ImageList(); this.ilSmall = new System.Windows.Forms.ImageList(); this.lwFilesAndFolders = new System.Windows.Forms.ListView(); this.SuspendLayout(); this.lblCurrentPath.Location = new System.Drawing.Point(16, 8); this.lblCurrentPath.Name = "lblCurrentPath"; this.lblCurrentPath.Size = new System.Drawing.Size(528, 16); this.lblCurrentPath.TabIndex = 3; // // ilLarge // this.ilLarge.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit; this.ilLarge.ImageSize = new System.Drawing.Size(32, 32);
// this.ilLarge.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("ilLarge.ImageStream")));
this.ilLarge.TransparentColor = System.Drawing.Color.Transparent; // // ilSmall // this.ilSmall.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit; this.ilSmall.ImageSize = new System.Drawing.Size(16, 16);
// this.ilSmall.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("ilSmall.ImageStream")));
this.ilSmall.TransparentColor = System.Drawing.Color.Transparent; // // lwFilesAndFolders // this.lwFilesAndFolders.LargeImageList = this.ilLarge; this.lwFilesAndFolders.Location = new System.Drawing.Point(16, 32); this.lwFilesAndFolders.MultiSelect = false; this.lwFilesAndFolders.Name = "lwFilesAndFolders"; this.lwFilesAndFolders.Size = new System.Drawing.Size(400, 216); this.lwFilesAndFolders.SmallImageList = this.ilSmall; this.lwFilesAndFolders.TabIndex = 0; this.lwFilesAndFolders.View = System.Windows.Forms.View.List; // // Form1 // this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); this.ClientSize = new System.Drawing.Size(552, 293); this.Controls.AddRange(new System.Windows.Forms.Control[] {this.lblCurrentPath, this.lwFilesAndFolders}); this.Name = "Form1"; this.Text = "ListView"; this.ResumeLayout(false); } static void Main() { Application.Run(new Form1()); } private void CreateHeadersAndFillListView() { ColumnHeader colHead; colHead = new ColumnHeader(); colHead.Text = "Filename"; this.lwFilesAndFolders.Columns.Add(colHead); colHead = new ColumnHeader(); colHead.Text = "Size"; this.lwFilesAndFolders.Columns.Add(colHead); colHead = new ColumnHeader(); colHead.Text = "Last accessed"; this.lwFilesAndFolders.Columns.Add(colHead); } private void PaintListView(string root) { try { ListViewItem lvi; ListViewItem.ListViewSubItem lvsi; this.lblCurrentPath.Text = root + " (Double click to display the path name)"; System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(root); DirectoryInfo[] dirs = dir.GetDirectories(); FileInfo[] files = dir.GetFiles(); this.lwFilesAndFolders.Items.Clear(); this.lwFilesAndFolders.BeginUpdate(); foreach (System.IO.DirectoryInfo di in dirs) { lvi = new ListViewItem(); lvi.Text = di.Name; //lvi.ImageIndex = 0; lvi.Tag = di.FullName; lvsi = new ListViewItem.ListViewSubItem(); lvsi.Text = "sub item"; lvi.SubItems.Add(lvsi); lvsi = new ListViewItem.ListViewSubItem(); lvsi.Text = di.LastAccessTime.ToString(); lvi.SubItems.Add(lvsi); this.lwFilesAndFolders.Items.Add(lvi); } this.lwFilesAndFolders.EndUpdate(); } catch (System.Exception err) { MessageBox.Show("Error: " + err.Message); } this.lwFilesAndFolders.View = View.Details; } private void lwFilesAndFolders_ItemActivate(object sender, System.EventArgs e) { System.Windows.Forms.ListView lw = (System.Windows.Forms.ListView)sender; string filename = lw.SelectedItems[0].Tag.ToString(); Console.WriteLine(filename); } }
}
</source>
Display Directory info in a ListView
<source lang="csharp"> using System; using System.Drawing; using System.Collections; using System.ruponentModel; using System.Windows.Forms; using System.Data; using System.IO; namespace ListView {
public class Form1 : System.Windows.Forms.Form { private System.Collections.Specialized.StringCollection folderCol; private System.Windows.Forms.ImageList ilLarge; private System.Windows.Forms.ImageList ilSmall; private System.Windows.Forms.ListView lwFilesAndFolders; private System.Windows.Forms.Label lblCurrentPath; public Form1() { InitializeComponent(); // Init ListView and folder collection folderCol = new System.Collections.Specialized.StringCollection(); CreateHeadersAndFillListView(); PaintListView(@"C:\"); folderCol.Add(@"C:\"); this.lwFilesAndFolders.ItemActivate += new System.EventHandler(this.lwFilesAndFolders_ItemActivate); } private void InitializeComponent() {
// System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(Form1));
this.lblCurrentPath = new System.Windows.Forms.Label(); this.ilLarge = new System.Windows.Forms.ImageList(); this.ilSmall = new System.Windows.Forms.ImageList(); this.lwFilesAndFolders = new System.Windows.Forms.ListView(); this.SuspendLayout(); this.lblCurrentPath.Location = new System.Drawing.Point(16, 8); this.lblCurrentPath.Name = "lblCurrentPath"; this.lblCurrentPath.Size = new System.Drawing.Size(528, 16); this.lblCurrentPath.TabIndex = 3; // // ilLarge // this.ilLarge.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit; this.ilLarge.ImageSize = new System.Drawing.Size(32, 32);
// this.ilLarge.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("ilLarge.ImageStream")));
this.ilLarge.TransparentColor = System.Drawing.Color.Transparent; // // ilSmall // this.ilSmall.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit; this.ilSmall.ImageSize = new System.Drawing.Size(16, 16);
// this.ilSmall.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("ilSmall.ImageStream")));
this.ilSmall.TransparentColor = System.Drawing.Color.Transparent; // // lwFilesAndFolders // this.lwFilesAndFolders.LargeImageList = this.ilLarge; this.lwFilesAndFolders.Location = new System.Drawing.Point(16, 32); this.lwFilesAndFolders.MultiSelect = false; this.lwFilesAndFolders.Name = "lwFilesAndFolders"; this.lwFilesAndFolders.Size = new System.Drawing.Size(400, 216); this.lwFilesAndFolders.SmallImageList = this.ilSmall; this.lwFilesAndFolders.TabIndex = 0; this.lwFilesAndFolders.View = System.Windows.Forms.View.List; // // Form1 // this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); this.ClientSize = new System.Drawing.Size(552, 293); this.Controls.AddRange(new System.Windows.Forms.Control[] {this.lblCurrentPath, this.lwFilesAndFolders}); this.Name = "Form1"; this.Text = "ListView"; this.ResumeLayout(false); } static void Main() { Application.Run(new Form1()); } private void CreateHeadersAndFillListView() { ColumnHeader colHead; colHead = new ColumnHeader(); colHead.Text = "Filename"; this.lwFilesAndFolders.Columns.Add(colHead); colHead = new ColumnHeader(); colHead.Text = "Size"; this.lwFilesAndFolders.Columns.Add(colHead); colHead = new ColumnHeader(); colHead.Text = "Last accessed"; this.lwFilesAndFolders.Columns.Add(colHead); } private void PaintListView(string root) { try { ListViewItem lvi; ListViewItem.ListViewSubItem lvsi; this.lblCurrentPath.Text = root + " (Double click to display the path name)"; System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(root); DirectoryInfo[] dirs = dir.GetDirectories(); FileInfo[] files = dir.GetFiles(); this.lwFilesAndFolders.Items.Clear(); this.lwFilesAndFolders.BeginUpdate(); foreach (System.IO.DirectoryInfo di in dirs) { lvi = new ListViewItem(); lvi.Text = di.Name; //lvi.ImageIndex = 0; lvi.Tag = di.FullName; lvsi = new ListViewItem.ListViewSubItem(); lvsi.Text = "sub item"; lvi.SubItems.Add(lvsi); lvsi = new ListViewItem.ListViewSubItem(); lvsi.Text = di.LastAccessTime.ToString(); lvi.SubItems.Add(lvsi); this.lwFilesAndFolders.Items.Add(lvi); } this.lwFilesAndFolders.EndUpdate(); } catch (System.Exception err) { MessageBox.Show("Error: " + err.Message); } this.lwFilesAndFolders.View = View.Details; } private void lwFilesAndFolders_ItemActivate(object sender, System.EventArgs e) { System.Windows.Forms.ListView lw = (System.Windows.Forms.ListView)sender; string filename = lw.SelectedItems[0].Tag.ToString(); Console.WriteLine(filename); } }
}
</source>
Dragging and dropping between ListView
<source lang="csharp">
using System; using System.Drawing; using System.Collections; using System.ruponentModel; 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.ruponentModel.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); }
}
</source>
Extends ListViewItem
<source lang="csharp"> using System; using System.Drawing; using System.Collections; using System.ruponentModel; 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.ruboBox cbView; private System.Windows.Forms.Label lblAbbreviation; private System.ruponentModel.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.ruponents = new System.ruponentModel.Container(); this.lvCountries = new System.Windows.Forms.ListView(); this.imgLarge = new System.Windows.Forms.ImageList(this.ruponents); this.imgSmall = new System.Windows.Forms.ImageList(this.ruponents); this.cbView = new System.Windows.Forms.ruboBox(); 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;} } }
</source>
Folder Browser based on ListView
<source lang="csharp"> using System; using System.Collections.Generic; using System.ruponentModel; 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.ruponentModel.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()); }
}
</source>
ListView Country: image and font
<source lang="csharp"> /* Professional Windows GUI Programming Using C# by Jay Glynn, Csaba Torok, Richard Conway, Wahid Choudhury,
Zach Greenvoss, Shripad Kulkarni, Neil Whitlow
Publisher: Peer Information ISBN: 1861007663
- /
using System; using System.Drawing; using System.Collections; using System.ruponentModel; using System.Windows.Forms; using System.Data; namespace ListView {
/// <summary> /// Summary description for ListViewCountry. /// </summary> public class ListViewCountry : System.Windows.Forms.Form { private System.Windows.Forms.ListView listView1; private System.Windows.Forms.ColumnHeader Country; private System.Windows.Forms.ColumnHeader Capital; private System.Windows.Forms.ColumnHeader City_1; private System.Windows.Forms.ColumnHeader City_2; private System.Windows.Forms.Button REPORT; private System.Windows.Forms.Button LIST; private System.Windows.Forms.Button SMALLICON; private System.Windows.Forms.Button LARGEICON; ImageList ig = new ImageList(); private System.Windows.Forms.Button SELECTED; private System.Windows.Forms.Button CHECKED; private System.Windows.Forms.Panel panel1; /// <summary> /// Required designer variable. /// </summary> private System.ruponentModel.Container components = null; public ListViewCountry() { // // Required for Windows Form Designer support // InitializeComponent(); // // TODO: Add any constructor code after InitializeComponent call // } /// <summary> /// Clean up any resources being used. /// </summary> protected override void Dispose( bool disposing ) { if( disposing ) { if (components != null) { components.Dispose(); } } base.Dispose( disposing ); } #region Windows Form Designer generated code /// <summary> /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// </summary> private void InitializeComponent() { this.listView1 = new System.Windows.Forms.ListView(); this.Country = new System.Windows.Forms.ColumnHeader(); this.Capital = new System.Windows.Forms.ColumnHeader(); this.City_1 = new System.Windows.Forms.ColumnHeader(); this.City_2 = new System.Windows.Forms.ColumnHeader(); this.REPORT = new System.Windows.Forms.Button(); this.LIST = new System.Windows.Forms.Button(); this.SMALLICON = new System.Windows.Forms.Button(); this.LARGEICON = new System.Windows.Forms.Button(); this.SELECTED = new System.Windows.Forms.Button(); this.CHECKED = new System.Windows.Forms.Button(); this.panel1 = new System.Windows.Forms.Panel(); this.panel1.SuspendLayout(); this.SuspendLayout(); // // listView1 // 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.Name = "listView1"; 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; // // ListViewCountry // 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 = "ListViewCountry"; this.Text = "ListView"; this.Load += new System.EventHandler(this.ListViewCountry_Load); this.panel1.ResumeLayout(false); this.ResumeLayout(false); } #endregion /// <summary> /// The main entry point for the application. /// </summary> [STAThread] static void Main() { Application.Run(new ListViewCountry()); } private void ListViewCountry_Load(object sender, System.EventArgs e) { // Create an image list of icons that you want to display for each item 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")); // Set the Imagelist for SmallIcons listView1.SmallImageList = ig ; // Set the ImageList for LargeIcons listView1.LargeImageList = ig ; // Align the columns 1,2,3 and the column data as Center listView1.Columns[1].TextAlign = HorizontalAlignment.Center ; listView1.Columns[2].TextAlign = HorizontalAlignment.Center ; listView1.Columns[3].TextAlign = HorizontalAlignment.Center ; // Create a ListViewItem object for evey item that you wish to add the ListView. string[] lv = new String[4]; lv[0] = "USA" ; lv[1] = "Washington DC" ; lv[2] = "New York" ; lv[3] = "Los Angeles" ; listView1.Items.Add( new ListViewItem(lv,0)); lv[0] = "Italy" ; lv[1] = "Rome" ; lv[2] = "Venice" ; lv[3] = "Milan" ; listView1.Items.Add( new ListViewItem(lv,1)); lv[0] = "Canada" ; lv[1] = "Ottawa" ; lv[2] = "Montreal" ; lv[3] = "Quebec" ; listView1.Items.Add( new ListViewItem(lv,2)); lv[0] = "Switzerland" ; lv[1] = "Geneva" ; lv[2] = "Zurich" ; lv[3] = "Lucerne" ; listView1.Items.Add( new ListViewItem(lv,3)); lv[0] = "UnitedKingdom" ; lv[1] = "London" ; lv[2] = "ChesterField" ; lv[3] = "Wembly" ; 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.Write(lvi.SubItems[i].Text + "\t") ; } Console.WriteLine("\n"); } } private void REPORT_Click(object sender, System.EventArgs e) { // Switch to the Report View this.Text = "Report View"; listView1.View = View.Details; } private void LARGEICON_Click(object sender, System.EventArgs e) { // Switch to the LargeIcon view this.Text = "LargeIcon View"; listView1.View = View.LargeIcon ; } private void SMALLICON_Click(object sender, System.EventArgs e) { // Switch to the SmallIcon view this.Text = "SmallIcon View"; listView1.View = View.SmallIcon; } private void LIST_Click(object sender, System.EventArgs e) { // Switch to the List view this.Text = "List View"; listView1.View = View.List; } private void SELECTED_Click(object sender, System.EventArgs e) { // Get the list of indices for all the selected items string StrSelected = "ITEM SELECTED FROM THE LISTVIEW ARE ...\n\n" ; for ( int k=0; k < listView1.SelectedIndices.Count ; k++) { StrSelected = StrSelected + "[" + (k+1) + "] " ; // Get the item ( as ListViewItem ) at the selected index. ListViewItem lvi = listView1.Items[listView1.SelectedIndices[k]]; for ( int i=0; i < lvi.SubItems.Count ; i++) { // Get the subItem for the the selected item StrSelected = StrSelected + lvi.SubItems[i].Text + "\t"; } StrSelected = StrSelected + "\n"; } MessageBox.Show(StrSelected , "Selected Items"); } private void CHECKED_Click(object sender, System.EventArgs e) { // Get the list of indices for all checked items string StrSelected = "ITEM CHECKED FROM THE LISTVIEW ARE ...\n\n" ; for ( int k=0; k < listView1.CheckedIndices.Count; k++) { StrSelected = StrSelected + "[" + (k+1) + "] " ; // Get the item ( as ListViewItem ) at the selected index. ListViewItem lvi = listView1.Items[listView1.CheckedIndices[k]]; for ( int i=0; i < lvi.SubItems.Count ; i++) { // Get the subItem for the the selected item StrSelected = StrSelected + lvi.SubItems[i].Text + "\t"; } StrSelected = StrSelected + "\n"; } MessageBox.Show(StrSelected , "Checked Items"); } 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(); }
}
}
</source>
<A href="http://www.nfex.ru/Code/CSharpDownload/ListView.zip">ListView.zip( 46 k)</a>
ListView Example
<source lang="csharp"> /* User Interfaces in C#: Windows Forms and Custom Controls by Matthew MacDonald Publisher: Apress ISBN: 1590590457
- /
using System; using System.Drawing; using System.Collections; using System.ruponentModel; using System.Windows.Forms; using System.Data; namespace ListViewExample {
/// <summary> /// Summary description for ListViewExample. /// </summary> public class ListViewExample : System.Windows.Forms.Form { internal System.Windows.Forms.GroupBox GroupBox1; internal System.Windows.Forms.RadioButton optLargeIcon; internal System.Windows.Forms.RadioButton optList; internal System.Windows.Forms.RadioButton optDetails; internal System.Windows.Forms.RadioButton optSmallIcon; internal System.Windows.Forms.Button cmdFillList; internal System.Windows.Forms.ListView listAuthors; internal System.Windows.Forms.ImageList imagesLarge; internal System.Windows.Forms.ImageList imagesSmall; private System.ruponentModel.IContainer components; public ListViewExample() { // // Required for Windows Form Designer support // InitializeComponent(); // // TODO: Add any constructor code after InitializeComponent call // } /// <summary> /// Clean up any resources being used. /// </summary> protected override void Dispose( bool disposing ) { if( disposing ) { if (components != null) { components.Dispose(); } } base.Dispose( disposing ); } #region Windows Form Designer generated code /// <summary> /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// </summary> private void InitializeComponent() { this.ruponents = new System.ruponentModel.Container(); System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(ListViewExample)); this.GroupBox1 = new System.Windows.Forms.GroupBox(); this.optLargeIcon = new System.Windows.Forms.RadioButton(); this.optList = new System.Windows.Forms.RadioButton(); this.optDetails = new System.Windows.Forms.RadioButton(); this.optSmallIcon = new System.Windows.Forms.RadioButton(); this.cmdFillList = new System.Windows.Forms.Button(); this.listAuthors = new System.Windows.Forms.ListView(); this.imagesLarge = new System.Windows.Forms.ImageList(this.ruponents); this.imagesSmall = new System.Windows.Forms.ImageList(this.ruponents); this.GroupBox1.SuspendLayout(); this.SuspendLayout(); // // GroupBox1 // this.GroupBox1.Anchor = (System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right); this.GroupBox1.Controls.AddRange(new System.Windows.Forms.Control[] { this.optLargeIcon, this.optList, this.optDetails, this.optSmallIcon}); this.GroupBox1.FlatStyle = System.Windows.Forms.FlatStyle.System; this.GroupBox1.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); this.GroupBox1.Location = new System.Drawing.Point(276, 12); this.GroupBox1.Name = "GroupBox1"; this.GroupBox1.Size = new System.Drawing.Size(104, 132); this.GroupBox1.TabIndex = 5; this.GroupBox1.TabStop = false; this.GroupBox1.Text = "View"; // // optLargeIcon // this.optLargeIcon.Checked = true; this.optLargeIcon.FlatStyle = System.Windows.Forms.FlatStyle.System; this.optLargeIcon.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); this.optLargeIcon.Location = new System.Drawing.Point(16, 48); this.optLargeIcon.Name = "optLargeIcon"; this.optLargeIcon.Size = new System.Drawing.Size(76, 16); this.optLargeIcon.TabIndex = 0; this.optLargeIcon.TabStop = true; this.optLargeIcon.Text = "LargeIcon"; this.optLargeIcon.CheckedChanged += new System.EventHandler(this.NewView); // // optList // this.optList.FlatStyle = System.Windows.Forms.FlatStyle.System; this.optList.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); this.optList.Location = new System.Drawing.Point(16, 96); this.optList.Name = "optList"; this.optList.Size = new System.Drawing.Size(56, 16); this.optList.TabIndex = 0; this.optList.Text = "List"; this.optList.CheckedChanged += new System.EventHandler(this.NewView); // // optDetails // this.optDetails.FlatStyle = System.Windows.Forms.FlatStyle.System; this.optDetails.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); this.optDetails.Location = new System.Drawing.Point(16, 72); this.optDetails.Name = "optDetails"; this.optDetails.Size = new System.Drawing.Size(72, 16); this.optDetails.TabIndex = 0; this.optDetails.Text = "Details"; this.optDetails.CheckedChanged += new System.EventHandler(this.NewView); // // optSmallIcon // this.optSmallIcon.FlatStyle = System.Windows.Forms.FlatStyle.System; this.optSmallIcon.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); this.optSmallIcon.Location = new System.Drawing.Point(16, 24); this.optSmallIcon.Name = "optSmallIcon"; this.optSmallIcon.Size = new System.Drawing.Size(72, 16); this.optSmallIcon.TabIndex = 0; this.optSmallIcon.Text = "SmallIcon"; this.optSmallIcon.CheckedChanged += new System.EventHandler(this.NewView); // // cmdFillList // this.cmdFillList.Anchor = (System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right); this.cmdFillList.FlatStyle = System.Windows.Forms.FlatStyle.System; this.cmdFillList.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); this.cmdFillList.Location = new System.Drawing.Point(276, 152); this.cmdFillList.Name = "cmdFillList"; this.cmdFillList.Size = new System.Drawing.Size(104, 24); this.cmdFillList.TabIndex = 4; this.cmdFillList.Text = "Fill List"; this.cmdFillList.Click += new System.EventHandler(this.cmdFillList_Click); // // listAuthors // this.listAuthors.Activation = System.Windows.Forms.ItemActivation.OneClick; this.listAuthors.AllowColumnReorder = true; this.listAuthors.Anchor = (((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right); this.listAuthors.GridLines = true; this.listAuthors.HoverSelection = true; this.listAuthors.Location = new System.Drawing.Point(8, 8); this.listAuthors.Name = "listAuthors"; this.listAuthors.Size = new System.Drawing.Size(260, 332); this.listAuthors.Sorting = System.Windows.Forms.SortOrder.Ascending; this.listAuthors.TabIndex = 3; this.listAuthors.ColumnClick += new System.Windows.Forms.ColumnClickEventHandler(this.listAuthors_ColumnClick); // // imagesLarge // this.imagesLarge.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit; this.imagesLarge.ImageSize = new System.Drawing.Size(32, 32); this.imagesLarge.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("imagesLarge.ImageStream"))); this.imagesLarge.TransparentColor = System.Drawing.Color.Transparent; // // imagesSmall // this.imagesSmall.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit; this.imagesSmall.ImageSize = new System.Drawing.Size(16, 16); this.imagesSmall.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("imagesSmall.ImageStream"))); this.imagesSmall.TransparentColor = System.Drawing.Color.Transparent; // // ListViewExample // this.AutoScaleBaseSize = new System.Drawing.Size(5, 14); this.ClientSize = new System.Drawing.Size(388, 349); this.Controls.AddRange(new System.Windows.Forms.Control[] { this.GroupBox1, this.cmdFillList, this.listAuthors}); this.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); this.Name = "ListViewExample"; this.Text = "ListView Example"; this.Load += new System.EventHandler(this.ListViewExample_Load); this.GroupBox1.ResumeLayout(false); this.ResumeLayout(false); } #endregion /// <summary> /// The main entry point for the application. /// </summary> [STAThread] static void Main() { Application.Run(new ListViewExample()); } private void cmdFillList_Click(object sender, System.EventArgs e) { DataTable dt = StoreDB.GetProducts(); // Suspending automatic refreshes as items are added/removed. listAuthors.BeginUpdate(); listAuthors.SmallImageList = imagesSmall; listAuthors.LargeImageList = imagesLarge; foreach (DataRow dr in dt.Rows) { ListViewItem listItem = new ListViewItem(dr["ModelName"].ToString()); listItem.ImageIndex = 0; // Add sub-items for Details view. listItem.SubItems.Add(dr["ProductID"].ToString()); listItem.SubItems.Add(dr["Description"].ToString()); listAuthors.Items.Add(listItem); } // Add column headers for Details view. listAuthors.Columns.Add("Product", 100, HorizontalAlignment.Left); listAuthors.Columns.Add("ID", 100, HorizontalAlignment.Left); listAuthors.Columns.Add("Description", 100, HorizontalAlignment.Left); // Re-enable the display. listAuthors.EndUpdate(); } private void ListViewExample_Load(object sender, System.EventArgs e) { optLargeIcon.Tag = View.LargeIcon; optSmallIcon.Tag = View.SmallIcon; optDetails.Tag = View.Details; optList.Tag = View.List; cmdFillList_Click(null, null); } private void NewView(object sender, System.EventArgs e) { // Set the current view mode based on the number in the tag value of the // selected radio button. listAuthors.View = (View)(((Control)sender).Tag); // Display the current view style. this.Text = "Using View: " + listAuthors.View.ToString(); } private void listAuthors_ColumnClick(object sender, System.Windows.Forms.ColumnClickEventArgs e) { // Specify an alphabetic sort based on the column that was clicked. listAuthors.ListViewItemSorter = new CompareListViewItems(e.Column, true); // Perform the sort. listAuthors.Sort(); } } public class CompareListViewItems : IComparer { // This index identifies the column that is used for sorting public readonly int Column; // Is the sort alphabetic or number? public readonly bool Alphabetic; public CompareListViewItems(int columnIndex, bool alphabetic) { this.Column = columnIndex; this.Alphabetic = alphabetic; } public int Compare(object x, object y) { // Convert the items that must be compared into ListViewItem objects. string listX = ((ListViewItem)x).SubItems[Column].Text; string listY = ((ListViewItem)y).SubItems[Column].Text; // Sort using the specified column and specified sorting type. if (Alphabetic) { return listX.rupareTo(listY); } else { if (int.Parse(listX) > int.Parse(listY)) { return 1; } else if (int.Parse(listX) == int.Parse(listY)) { return 0; } else { return -1; } } } }
public class StoreDB { public static DataTable GetProducts() { DataSet dsStore = new DataSet(); dsStore.ReadXmlSchema(Application.StartupPath + "\\store.xsd"); dsStore.ReadXml(Application.StartupPath + "\\store.xml"); return dsStore.Tables["Products"]; } }
}
</source>
<A href="http://www.nfex.ru/Code/CSharpDownload/ListViewExample.zip">ListViewExample.zip( 47 k)</a>
ListView Item clicked event
<source lang="csharp"> using System; using System.Collections.Generic; using System.ruponentModel; 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.ruponentModel.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()); }
}
</source>
Set ColumnHeader for ListView
<source lang="csharp"> using System; using System.Drawing; using System.Collections; using System.ruponentModel; 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(); }
}
</source>
Sort a List View by Any Column
<source lang="csharp"> using System; using System.Drawing; using System.Collections; using System.ruponentModel; 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.rupare (str1, str2); else result = String.rupare (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; } </source>
Use ListViewItem to display file information
<source lang="csharp"> using System; using System.Collections.Generic; using System.ruponentModel; using System.Data; using System.Drawing; using System.Windows.Forms; using System.IO;
class Form1 : Form {
private System.Collections.Specialized.StringCollection folderCol; public Form1() { InitializeComponent(); folderCol = new System.Collections.Specialized.StringCollection(); CreateHeadersAndFillListView(); PaintListView(@"C:\"); folderCol.Add(@"C:\"); } private void CreateHeadersAndFillListView() { ColumnHeader colHead; colHead = new ColumnHeader(); colHead.Text = "Filename"; this.listViewFilesAndFolders.Columns.Add(colHead); colHead = new ColumnHeader(); colHead.Text = "Size"; this.listViewFilesAndFolders.Columns.Add(colHead); colHead = new ColumnHeader(); colHead.Text = "Last accessed"; this.listViewFilesAndFolders.Columns.Add(colHead); } private void PaintListView(string root) { try { ListViewItem lvi; ListViewItem.ListViewSubItem lvsi; if (root.rupareTo("") == 0) return; DirectoryInfo dir = new DirectoryInfo(root); DirectoryInfo[] dirs = dir.GetDirectories(); FileInfo[] files = dir.GetFiles(); this.listViewFilesAndFolders.Items.Clear(); this.labelCurrentPath.Text = root; this.listViewFilesAndFolders.BeginUpdate(); foreach (DirectoryInfo di in dirs) { lvi = new ListViewItem(); lvi.Text = di.Name; lvi.ImageIndex = 0; lvi.Tag = di.FullName; lvsi = new ListViewItem.ListViewSubItem(); lvsi.Text = ""; lvi.SubItems.Add(lvsi); lvsi = new ListViewItem.ListViewSubItem(); lvsi.Text = di.LastAccessTime.ToString(); lvi.SubItems.Add(lvsi); this.listViewFilesAndFolders.Items.Add(lvi); } foreach (FileInfo fi in files) { lvi = new ListViewItem(); lvi.Text = fi.Name; lvi.ImageIndex = 1; lvi.Tag = fi.FullName; lvsi = new ListViewItem.ListViewSubItem(); lvsi.Text = fi.Length.ToString(); lvi.SubItems.Add(lvsi); lvsi = new ListViewItem.ListViewSubItem(); lvsi.Text = fi.LastAccessTime.ToString(); lvi.SubItems.Add(lvsi); this.listViewFilesAndFolders.Items.Add(lvi); } this.listViewFilesAndFolders.EndUpdate(); } catch (System.Exception err) { MessageBox.Show("Error: " + err.Message); } } private void listViewFilesAndFoldes_ItemActivate(object sender, EventArgs e) { System.Windows.Forms.ListView lw = (System.Windows.Forms.ListView)sender; string filename = lw.SelectedItems[0].Tag.ToString(); if (lw.SelectedItems[0].ImageIndex != 0) { try { System.Diagnostics.Process.Start(filename); } catch { return; } } else { PaintListView(filename); folderCol.Add(filename); } } private void buttonBack_Click(object sender, EventArgs e) { if (folderCol.Count > 1) { PaintListView(folderCol[folderCol.Count - 2].ToString()); folderCol.RemoveAt(folderCol.Count - 1); } else { PaintListView(folderCol[0].ToString()); } } private void radioButtonLargeIcon_CheckedChanged(object sender, EventArgs e) { RadioButton rdb = (RadioButton)sender; if (rdb.Checked) this.listViewFilesAndFolders.View = View.LargeIcon; } private void radioButtonList_CheckedChanged(object sender, EventArgs e) { RadioButton rdb = (RadioButton)sender; if (rdb.Checked) this.listViewFilesAndFolders.View = View.List; } private void radioButtonSmallIcon_CheckedChanged(object sender, EventArgs e) { RadioButton rdb = (RadioButton)sender; if (rdb.Checked) this.listViewFilesAndFolders.View = View.SmallIcon; } 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; } private void InitializeComponent() { System.Windows.Forms.ListViewItem listViewItem2 = new System.Windows.Forms.ListViewItem("listViewFilesAndFoldes"); this.labelCurrentPath = new System.Windows.Forms.Label(); this.listViewFilesAndFolders = new System.Windows.Forms.ListView(); this.buttonBack = new System.Windows.Forms.Button(); this.groupBox1 = new System.Windows.Forms.GroupBox(); this.radioButtonSmallIcon = new System.Windows.Forms.RadioButton(); this.radioButtonList = new System.Windows.Forms.RadioButton(); this.radioButtonTile = new System.Windows.Forms.RadioButton(); this.radioButtonDetails = new System.Windows.Forms.RadioButton(); this.radioButtonLargeIcon = new System.Windows.Forms.RadioButton(); this.groupBox1.SuspendLayout(); this.SuspendLayout(); this.labelCurrentPath.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.labelCurrentPath.Location = new System.Drawing.Point(13, 13); this.labelCurrentPath.Name = "labelCurrentPath"; this.labelCurrentPath.Size = new System.Drawing.Size(502, 15); this.labelCurrentPath.TabIndex = 0; this.listViewFilesAndFolders.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.listViewFilesAndFolders.Items.AddRange(new System.Windows.Forms.ListViewItem[] { listViewItem2 }); this.listViewFilesAndFolders.Location = new System.Drawing.Point(13, 35); this.listViewFilesAndFolders.Name = "listViewFilesAndFoldes"; this.listViewFilesAndFolders.Size = new System.Drawing.Size(423, 220); this.listViewFilesAndFolders.TabIndex = 1; this.listViewFilesAndFolders.View = System.Windows.Forms.View.Details; this.listViewFilesAndFolders.ItemActivate += new System.EventHandler(this.listViewFilesAndFoldes_ItemActivate); this.buttonBack.Anchor = System.Windows.Forms.AnchorStyles.Bottom; this.buttonBack.Location = new System.Drawing.Point(222, 262); this.buttonBack.Name = "buttonBack"; this.buttonBack.TabIndex = 2; this.buttonBack.Text = "Back"; this.buttonBack.Click += new System.EventHandler(this.buttonBack_Click); this.groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.groupBox1.Controls.Add(this.radioButtonSmallIcon); this.groupBox1.Controls.Add(this.radioButtonList); this.groupBox1.Controls.Add(this.radioButtonTile); this.groupBox1.Controls.Add(this.radioButtonDetails); this.groupBox1.Controls.Add(this.radioButtonLargeIcon); this.groupBox1.Location = new System.Drawing.Point(443, 35); this.groupBox1.Name = "groupBox1"; this.groupBox1.Size = new System.Drawing.Size(97, 220); this.groupBox1.TabIndex = 3; this.groupBox1.TabStop = false; this.groupBox1.Text = "View Mode"; this.radioButtonSmallIcon.AutoSize = true; this.radioButtonSmallIcon.Location = new System.Drawing.Point(7, 44); this.radioButtonSmallIcon.Name = "radioButtonSmallIcon"; this.radioButtonSmallIcon.Size = new System.Drawing.Size(67, 17); this.radioButtonSmallIcon.TabIndex = 4; this.radioButtonSmallIcon.Text = "SmallIcon"; this.radioButtonSmallIcon.CheckedChanged += new System.EventHandler(this.radioButtonSmallIcon_CheckedChanged); this.radioButtonList.AutoSize = true; this.radioButtonList.Location = new System.Drawing.Point(7, 68); this.radioButtonList.Name = "radioButtonList"; this.radioButtonList.Size = new System.Drawing.Size(37, 17); this.radioButtonList.TabIndex = 3; this.radioButtonList.Text = "List"; this.radioButtonList.CheckedChanged += new System.EventHandler(this.radioButtonList_CheckedChanged); this.radioButtonTile.AutoSize = true; this.radioButtonTile.Location = new System.Drawing.Point(7, 116); this.radioButtonTile.Name = "radioButtonTile"; this.radioButtonTile.Size = new System.Drawing.Size(38, 17); this.radioButtonTile.TabIndex = 2; this.radioButtonTile.Text = "Tile"; this.radioButtonTile.CheckedChanged += new System.EventHandler(this.radioButtonTile_CheckedChanged); this.radioButtonDetails.AutoSize = true; this.radioButtonDetails.Checked = true; this.radioButtonDetails.Location = new System.Drawing.Point(7, 92); this.radioButtonDetails.Name = "radioButtonDetails"; this.radioButtonDetails.Size = new System.Drawing.Size(53, 17); this.radioButtonDetails.TabIndex = 1; this.radioButtonDetails.TabStop = true; this.radioButtonDetails.Text = "Details"; this.radioButtonDetails.CheckedChanged += new System.EventHandler(this.radioButtonDetails_CheckedChanged); this.radioButtonLargeIcon.AutoSize = true; this.radioButtonLargeIcon.Location = new System.Drawing.Point(7, 20); this.radioButtonLargeIcon.Name = "radioButtonLargeIcon"; this.radioButtonLargeIcon.Size = new System.Drawing.Size(69, 17); this.radioButtonLargeIcon.TabIndex = 0; this.radioButtonLargeIcon.Text = "LargeIcon"; this.radioButtonLargeIcon.CheckedChanged += new System.EventHandler(this.radioButtonLargeIcon_CheckedChanged); this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); this.ClientSize = new System.Drawing.Size(550, 291); this.Controls.Add(this.groupBox1); this.Controls.Add(this.buttonBack); this.Controls.Add(this.listViewFilesAndFolders); this.Controls.Add(this.labelCurrentPath); this.Name = "Form1"; this.Text = "ListView"; this.groupBox1.ResumeLayout(false); this.groupBox1.PerformLayout(); this.ResumeLayout(false); this.PerformLayout(); } private System.Windows.Forms.Label labelCurrentPath; private System.Windows.Forms.ListView listViewFilesAndFolders; private System.Windows.Forms.Button buttonBack; private System.Windows.Forms.GroupBox groupBox1; private System.Windows.Forms.RadioButton radioButtonLargeIcon; private System.Windows.Forms.RadioButton radioButtonDetails; private System.Windows.Forms.RadioButton radioButtonTile; private System.Windows.Forms.RadioButton radioButtonList; private System.Windows.Forms.RadioButton radioButtonSmallIcon; [STAThread] static void Main() { Application.EnableVisualStyles(); Application.Run(new Form1()); }
}
</source>
Use ListView to diaplay folder info and double click to enter that directory
<source lang="csharp"> using System; using System.Drawing; using System.Collections; using System.ruponentModel; using System.Windows.Forms; using System.Data; using System.IO; namespace ListView {
public class Form1 : System.Windows.Forms.Form { private System.Collections.Specialized.StringCollection folderCol; private System.Windows.Forms.ImageList ilLarge; private System.Windows.Forms.ImageList ilSmall; private System.Windows.Forms.ListView lwFilesAndFolders; private System.Windows.Forms.Label lblCurrentPath; public Form1() { InitializeComponent(); // Init ListView and folder collection folderCol = new System.Collections.Specialized.StringCollection(); CreateHeadersAndFillListView(); PaintListView(@"C:\"); folderCol.Add(@"C:\"); this.lwFilesAndFolders.ItemActivate += new System.EventHandler(this.lwFilesAndFolders_ItemActivate); } private void InitializeComponent() {
// System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(Form1));
this.lblCurrentPath = new System.Windows.Forms.Label(); this.ilLarge = new System.Windows.Forms.ImageList(); this.ilSmall = new System.Windows.Forms.ImageList(); this.lwFilesAndFolders = new System.Windows.Forms.ListView(); this.SuspendLayout(); this.lblCurrentPath.Location = new System.Drawing.Point(16, 8); this.lblCurrentPath.Name = "lblCurrentPath"; this.lblCurrentPath.Size = new System.Drawing.Size(528, 16); this.lblCurrentPath.TabIndex = 3; // // ilLarge // this.ilLarge.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit; this.ilLarge.ImageSize = new System.Drawing.Size(32, 32);
// this.ilLarge.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("ilLarge.ImageStream")));
this.ilLarge.TransparentColor = System.Drawing.Color.Transparent; // // ilSmall // this.ilSmall.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit; this.ilSmall.ImageSize = new System.Drawing.Size(16, 16);
// this.ilSmall.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("ilSmall.ImageStream")));
this.ilSmall.TransparentColor = System.Drawing.Color.Transparent; // // lwFilesAndFolders // this.lwFilesAndFolders.LargeImageList = this.ilLarge; this.lwFilesAndFolders.Location = new System.Drawing.Point(16, 32); this.lwFilesAndFolders.MultiSelect = false; this.lwFilesAndFolders.Name = "lwFilesAndFolders"; this.lwFilesAndFolders.Size = new System.Drawing.Size(400, 216); this.lwFilesAndFolders.SmallImageList = this.ilSmall; this.lwFilesAndFolders.TabIndex = 0; this.lwFilesAndFolders.View = System.Windows.Forms.View.List; // // Form1 // this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); this.ClientSize = new System.Drawing.Size(552, 293); this.Controls.AddRange(new System.Windows.Forms.Control[] {this.lblCurrentPath, this.lwFilesAndFolders}); this.Name = "Form1"; this.Text = "ListView"; this.ResumeLayout(false); } static void Main() { Application.Run(new Form1()); } private void CreateHeadersAndFillListView() { ColumnHeader colHead; colHead = new ColumnHeader(); colHead.Text = "Filename"; this.lwFilesAndFolders.Columns.Add(colHead); colHead = new ColumnHeader(); colHead.Text = "Size"; this.lwFilesAndFolders.Columns.Add(colHead); colHead = new ColumnHeader(); colHead.Text = "Last accessed"; this.lwFilesAndFolders.Columns.Add(colHead); } private void PaintListView(string root) { try { ListViewItem lvi; ListViewItem.ListViewSubItem lvsi; this.lblCurrentPath.Text = root + " (Double click to display the path name)"; System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(root); DirectoryInfo[] dirs = dir.GetDirectories(); FileInfo[] files = dir.GetFiles(); this.lwFilesAndFolders.Items.Clear(); this.lwFilesAndFolders.BeginUpdate(); foreach (System.IO.DirectoryInfo di in dirs) { lvi = new ListViewItem(); lvi.Text = di.Name; //lvi.ImageIndex = 0; lvi.Tag = di.FullName; lvsi = new ListViewItem.ListViewSubItem(); lvsi.Text = "sub item"; lvi.SubItems.Add(lvsi); lvsi = new ListViewItem.ListViewSubItem(); lvsi.Text = di.LastAccessTime.ToString(); lvi.SubItems.Add(lvsi); this.lwFilesAndFolders.Items.Add(lvi); } this.lwFilesAndFolders.EndUpdate(); } catch (System.Exception err) { MessageBox.Show("Error: " + err.Message); } this.lwFilesAndFolders.View = View.Details; } private void lwFilesAndFolders_ItemActivate(object sender, System.EventArgs e) { System.Windows.Forms.ListView lw = (System.Windows.Forms.ListView)sender; string filename = lw.SelectedItems[0].Tag.ToString(); PaintListView(filename); folderCol.Add(filename); } }
}
</source>
Use ListView to display File info: name, size and date
<source lang="csharp"> using System; using System.Drawing; using System.Collections; using System.ruponentModel; using System.Windows.Forms; using System.Data; using System.IO; namespace ListView {
public class Form1 : System.Windows.Forms.Form { private System.Collections.Specialized.StringCollection folderCol; private System.Windows.Forms.ImageList ilLarge; private System.Windows.Forms.ImageList ilSmall; private System.Windows.Forms.ListView lwFilesAndFolders; private System.Windows.Forms.Label lblCurrentPath; public Form1() { InitializeComponent(); // Init ListView and folder collection folderCol = new System.Collections.Specialized.StringCollection(); CreateHeadersAndFillListView(); PaintListView(@"C:\"); folderCol.Add(@"C:\"); this.lwFilesAndFolders.ItemActivate += new System.EventHandler(this.lwFilesAndFolders_ItemActivate); } private void InitializeComponent() {
// System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(Form1));
this.lblCurrentPath = new System.Windows.Forms.Label(); this.ilLarge = new System.Windows.Forms.ImageList(); this.ilSmall = new System.Windows.Forms.ImageList(); this.lwFilesAndFolders = new System.Windows.Forms.ListView(); this.SuspendLayout(); this.lblCurrentPath.Location = new System.Drawing.Point(16, 8); this.lblCurrentPath.Name = "lblCurrentPath"; this.lblCurrentPath.Size = new System.Drawing.Size(528, 16); this.lblCurrentPath.TabIndex = 3; // // ilLarge // this.ilLarge.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit; this.ilLarge.ImageSize = new System.Drawing.Size(32, 32);
// this.ilLarge.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("ilLarge.ImageStream")));
this.ilLarge.TransparentColor = System.Drawing.Color.Transparent; // // ilSmall // this.ilSmall.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit; this.ilSmall.ImageSize = new System.Drawing.Size(16, 16);
// this.ilSmall.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("ilSmall.ImageStream")));
this.ilSmall.TransparentColor = System.Drawing.Color.Transparent; // // lwFilesAndFolders // this.lwFilesAndFolders.LargeImageList = this.ilLarge; this.lwFilesAndFolders.Location = new System.Drawing.Point(16, 32); this.lwFilesAndFolders.MultiSelect = false; this.lwFilesAndFolders.Name = "lwFilesAndFolders"; this.lwFilesAndFolders.Size = new System.Drawing.Size(400, 216); this.lwFilesAndFolders.SmallImageList = this.ilSmall; this.lwFilesAndFolders.TabIndex = 0; this.lwFilesAndFolders.View = System.Windows.Forms.View.List; // // Form1 // this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); this.ClientSize = new System.Drawing.Size(552, 293); this.Controls.AddRange(new System.Windows.Forms.Control[] {this.lblCurrentPath, this.lwFilesAndFolders}); this.Name = "Form1"; this.Text = "ListView"; this.ResumeLayout(false); } static void Main() { Application.Run(new Form1()); } private void CreateHeadersAndFillListView() { ColumnHeader colHead; colHead = new ColumnHeader(); colHead.Text = "Filename"; this.lwFilesAndFolders.Columns.Add(colHead); colHead = new ColumnHeader(); colHead.Text = "Size"; this.lwFilesAndFolders.Columns.Add(colHead); colHead = new ColumnHeader(); colHead.Text = "Last accessed"; this.lwFilesAndFolders.Columns.Add(colHead); } private void PaintListView(string root) { try { ListViewItem lvi; ListViewItem.ListViewSubItem lvsi; this.lblCurrentPath.Text = root + " (Double click to display the path name)"; System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(root); DirectoryInfo[] dirs = dir.GetDirectories(); FileInfo[] files = dir.GetFiles(); this.lwFilesAndFolders.Items.Clear(); this.lwFilesAndFolders.BeginUpdate(); foreach (System.IO.FileInfo fi in files) { lvi = new ListViewItem(); lvi.Text = fi.Name; lvi.ImageIndex = 1; lvi.Tag = fi.FullName; lvsi = new ListViewItem.ListViewSubItem(); lvsi.Text = fi.Length.ToString(); lvi.SubItems.Add(lvsi); lvsi = new ListViewItem.ListViewSubItem(); lvsi.Text = fi.LastAccessTime.ToString(); lvi.SubItems.Add(lvsi); this.lwFilesAndFolders.Items.Add(lvi); } this.lwFilesAndFolders.EndUpdate(); } catch (System.Exception err) { MessageBox.Show("Error: " + err.Message); } this.lwFilesAndFolders.View = View.Details; } private void lwFilesAndFolders_ItemActivate(object sender, System.EventArgs e) { System.Windows.Forms.ListView lw = (System.Windows.Forms.ListView)sender; string filename = lw.SelectedItems[0].Tag.ToString(); Console.WriteLine(filename); } }
}
</source>
Use ListView to display file name and double click the name to execute that file
<source lang="csharp"> using System; using System.Drawing; using System.Collections; using System.ruponentModel; using System.Windows.Forms; using System.Data; using System.IO; namespace ListView {
public class Form1 : System.Windows.Forms.Form { private System.Collections.Specialized.StringCollection folderCol; private System.Windows.Forms.ImageList ilLarge; private System.Windows.Forms.ImageList ilSmall; private System.Windows.Forms.ListView lwFilesAndFolders; private System.Windows.Forms.Label lblCurrentPath; public Form1() { InitializeComponent(); // Init ListView and folder collection folderCol = new System.Collections.Specialized.StringCollection(); CreateHeadersAndFillListView(); PaintListView(@"C:\"); folderCol.Add(@"C:\"); this.lwFilesAndFolders.ItemActivate += new System.EventHandler(this.lwFilesAndFolders_ItemActivate); } private void InitializeComponent() {
// System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(Form1));
this.lblCurrentPath = new System.Windows.Forms.Label(); this.ilLarge = new System.Windows.Forms.ImageList(); this.ilSmall = new System.Windows.Forms.ImageList(); this.lwFilesAndFolders = new System.Windows.Forms.ListView(); this.SuspendLayout(); this.lblCurrentPath.Location = new System.Drawing.Point(16, 8); this.lblCurrentPath.Name = "lblCurrentPath"; this.lblCurrentPath.Size = new System.Drawing.Size(528, 16); this.lblCurrentPath.TabIndex = 3; // // ilLarge // this.ilLarge.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit; this.ilLarge.ImageSize = new System.Drawing.Size(32, 32);
// this.ilLarge.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("ilLarge.ImageStream")));
this.ilLarge.TransparentColor = System.Drawing.Color.Transparent; // // ilSmall // this.ilSmall.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit; this.ilSmall.ImageSize = new System.Drawing.Size(16, 16);
// this.ilSmall.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("ilSmall.ImageStream")));
this.ilSmall.TransparentColor = System.Drawing.Color.Transparent; // // lwFilesAndFolders // this.lwFilesAndFolders.LargeImageList = this.ilLarge; this.lwFilesAndFolders.Location = new System.Drawing.Point(16, 32); this.lwFilesAndFolders.MultiSelect = false; this.lwFilesAndFolders.Name = "lwFilesAndFolders"; this.lwFilesAndFolders.Size = new System.Drawing.Size(400, 216); this.lwFilesAndFolders.SmallImageList = this.ilSmall; this.lwFilesAndFolders.TabIndex = 0; this.lwFilesAndFolders.View = System.Windows.Forms.View.List; // // Form1 // this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); this.ClientSize = new System.Drawing.Size(552, 293); this.Controls.AddRange(new System.Windows.Forms.Control[] {this.lblCurrentPath, this.lwFilesAndFolders}); this.Name = "Form1"; this.Text = "ListView"; this.ResumeLayout(false); } static void Main() { Application.Run(new Form1()); } private void CreateHeadersAndFillListView() { ColumnHeader colHead; colHead = new ColumnHeader(); colHead.Text = "Filename"; this.lwFilesAndFolders.Columns.Add(colHead); colHead = new ColumnHeader(); colHead.Text = "Size"; this.lwFilesAndFolders.Columns.Add(colHead); colHead = new ColumnHeader(); colHead.Text = "Last accessed"; this.lwFilesAndFolders.Columns.Add(colHead); } private void PaintListView(string root) { try { ListViewItem lvi; ListViewItem.ListViewSubItem lvsi; this.lblCurrentPath.Text = root + " (Double click to display the path name)"; System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(root); DirectoryInfo[] dirs = dir.GetDirectories(); FileInfo[] files = dir.GetFiles(); this.lwFilesAndFolders.Items.Clear(); this.lwFilesAndFolders.BeginUpdate(); foreach (System.IO.FileInfo fi in files) { lvi = new ListViewItem(); lvi.Text = fi.Name; lvi.ImageIndex = 1; lvi.Tag = fi.FullName; lvsi = new ListViewItem.ListViewSubItem(); lvsi.Text = fi.Length.ToString(); lvi.SubItems.Add(lvsi); lvsi = new ListViewItem.ListViewSubItem(); lvsi.Text = fi.LastAccessTime.ToString(); lvi.SubItems.Add(lvsi); this.lwFilesAndFolders.Items.Add(lvi); } this.lwFilesAndFolders.EndUpdate(); } catch (System.Exception err) { MessageBox.Show("Error: " + err.Message); } this.lwFilesAndFolders.View = View.Details; } private void lwFilesAndFolders_ItemActivate(object sender, System.EventArgs e) { System.Windows.Forms.ListView lw = (System.Windows.Forms.ListView)sender; string filename = lw.SelectedItems[0].Tag.ToString(); try { System.Diagnostics.Process.Start(filename); } catch { return; } } }
}
</source>
Use RadioButton to control the ListView display style
<source lang="csharp"> using System; using System.Drawing; using System.Collections; using System.ruponentModel; using System.Windows.Forms; using System.Data; using System.IO; namespace ListView {
public class Form1 : System.Windows.Forms.Form { private System.Windows.Forms.RadioButton rdoLarge; private System.Windows.Forms.RadioButton rdoSmall; private System.Windows.Forms.RadioButton rdoList; private System.Windows.Forms.RadioButton rdoDetails; private System.Windows.Forms.GroupBox groupBox1; private System.Windows.Forms.ImageList ilLarge; private System.Windows.Forms.ImageList ilSmall; private System.Windows.Forms.ListView lwFilesAndFolders; private System.Windows.Forms.Label lblCurrentPath; public Form1() { InitializeComponent(); CreateHeadersAndFillListView(); PaintListView(); } private void InitializeComponent() {
// System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(Form1));
this.groupBox1 = new System.Windows.Forms.GroupBox(); this.rdoDetails = new System.Windows.Forms.RadioButton(); this.rdoList = new System.Windows.Forms.RadioButton(); this.rdoSmall = new System.Windows.Forms.RadioButton(); this.rdoLarge = new System.Windows.Forms.RadioButton(); this.lblCurrentPath = new System.Windows.Forms.Label(); this.ilLarge = new System.Windows.Forms.ImageList(); this.ilSmall = new System.Windows.Forms.ImageList(); this.lwFilesAndFolders = new System.Windows.Forms.ListView(); this.groupBox1.SuspendLayout(); this.SuspendLayout(); this.groupBox1.Controls.AddRange(new System.Windows.Forms.Control[] {this.rdoDetails, this.rdoList, this.rdoSmall, this.rdoLarge}); this.groupBox1.Location = new System.Drawing.Point(424, 32); this.groupBox1.Name = "groupBox1"; this.groupBox1.Size = new System.Drawing.Size(120, 128); this.groupBox1.TabIndex = 2; this.groupBox1.TabStop = false; this.groupBox1.Text = "View mode"; // // rdoDetails // this.rdoDetails.Checked = true; this.rdoDetails.Location = new System.Drawing.Point(8, 96); this.rdoDetails.Name = "rdoDetails"; this.rdoDetails.Size = new System.Drawing.Size(104, 16); this.rdoDetails.TabIndex = 3; this.rdoDetails.TabStop = true; this.rdoDetails.Text = "Details"; this.rdoDetails.CheckedChanged += new System.EventHandler(this.rdoDetails_CheckedChanged); // // rdoList // this.rdoList.Location = new System.Drawing.Point(8, 72); this.rdoList.Name = "rdoList"; this.rdoList.Size = new System.Drawing.Size(104, 16); this.rdoList.TabIndex = 2; this.rdoList.Text = "List"; this.rdoList.CheckedChanged += new System.EventHandler(this.rdoList_CheckedChanged); // // rdoSmall // this.rdoSmall.Location = new System.Drawing.Point(8, 48); this.rdoSmall.Name = "rdoSmall"; this.rdoSmall.Size = new System.Drawing.Size(104, 16); this.rdoSmall.TabIndex = 1; this.rdoSmall.Text = "SmallIcon"; this.rdoSmall.CheckedChanged += new System.EventHandler(this.rdoSmall_CheckedChanged); // // rdoLarge // this.rdoLarge.Location = new System.Drawing.Point(8, 24); this.rdoLarge.Name = "rdoLarge"; this.rdoLarge.Size = new System.Drawing.Size(96, 16); this.rdoLarge.TabIndex = 0; this.rdoLarge.Text = "LargeIcon"; this.rdoLarge.CheckedChanged += new System.EventHandler(this.rdoLarge_CheckedChanged); // // ilLarge // this.ilLarge.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit; this.ilLarge.ImageSize = new System.Drawing.Size(32, 32);
// this.ilLarge.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("ilLarge.ImageStream")));
this.ilLarge.TransparentColor = System.Drawing.Color.Transparent; // // ilSmall // this.ilSmall.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit; this.ilSmall.ImageSize = new System.Drawing.Size(16, 16);
// this.ilSmall.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("ilSmall.ImageStream")));
this.ilSmall.TransparentColor = System.Drawing.Color.Transparent; // // lwFilesAndFolders // this.lwFilesAndFolders.LargeImageList = this.ilLarge; this.lwFilesAndFolders.Location = new System.Drawing.Point(16, 32); this.lwFilesAndFolders.MultiSelect = false; this.lwFilesAndFolders.Name = "lwFilesAndFolders"; this.lwFilesAndFolders.Size = new System.Drawing.Size(400, 216); this.lwFilesAndFolders.SmallImageList = this.ilSmall; this.lwFilesAndFolders.TabIndex = 0; this.lwFilesAndFolders.View = System.Windows.Forms.View.List; // // Form1 // this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); this.ClientSize = new System.Drawing.Size(552, 293); this.Controls.AddRange(new System.Windows.Forms.Control[] {this.groupBox1, this.lwFilesAndFolders}); this.Name = "Form1"; this.Text = "ListView"; this.groupBox1.ResumeLayout(false); this.ResumeLayout(false); } static void Main() { Application.Run(new Form1()); } private void CreateHeadersAndFillListView() { ColumnHeader colHead; colHead = new ColumnHeader(); colHead.Text = "Filename"; this.lwFilesAndFolders.Columns.Add(colHead); colHead = new ColumnHeader(); colHead.Text = "Size"; this.lwFilesAndFolders.Columns.Add(colHead); colHead = new ColumnHeader(); colHead.Text = "Last accessed"; this.lwFilesAndFolders.Columns.Add(colHead); } private void PaintListView() { ListViewItem lvi; ListViewItem.ListViewSubItem lvsi; this.lwFilesAndFolders.Items.Clear(); this.lwFilesAndFolders.BeginUpdate(); lvi = new ListViewItem(); lvi.Text = "A"; lvi.ImageIndex = 0; lvi.Tag = "tag"; lvsi = new ListViewItem.ListViewSubItem(); lvsi.Text = "4"; lvi.SubItems.Add(lvsi); lvsi = new ListViewItem.ListViewSubItem(); lvsi.Text = "C"; lvi.SubItems.Add(lvsi); this.lwFilesAndFolders.Items.Add(lvi); this.lwFilesAndFolders.EndUpdate(); this.lwFilesAndFolders.View = View.Details; } private void rdoLarge_CheckedChanged(object sender, System.EventArgs e) { RadioButton rdb = (RadioButton)sender; if (rdb.Checked) this.lwFilesAndFolders.View = View.LargeIcon; } private void rdoList_CheckedChanged(object sender, System.EventArgs e) { RadioButton rdb = (RadioButton)sender; if (rdb.Checked) this.lwFilesAndFolders.View = View.List; } private void rdoSmall_CheckedChanged(object sender, System.EventArgs e) { RadioButton rdb = (RadioButton)sender; if (rdb.Checked) this.lwFilesAndFolders.View = View.SmallIcon; } private void rdoDetails_CheckedChanged(object sender, System.EventArgs e) { RadioButton rdb = (RadioButton)sender; if (rdb.Checked) this.lwFilesAndFolders.View = View.Details; } }
}
</source>
Windows Explorer-Like Program: extends ListView
<source lang="csharp"> using System; using System.Diagnostics; // For Process.Start using System.Drawing; using System.IO; using System.Windows.Forms; class FileListView : ListView {
string strDirectory; public FileListView() { View = View.Details; ImageList imglst = new ImageList(); imglst.Images.Add(new Bitmap(GetType(), "DOC.BMP")); imglst.Images.Add(new Bitmap(GetType(), "EXE.BMP")); SmallImageList = imglst; LargeImageList = imglst; Columns.Add("Name", 100, HorizontalAlignment.Left); Columns.Add("Size", 100, HorizontalAlignment.Right); Columns.Add("Modified", 100, HorizontalAlignment.Left); Columns.Add("Attribute", 100, HorizontalAlignment.Left); } public void ShowFiles(string strDirectory) { this.strDirectory = strDirectory; Items.Clear(); DirectoryInfo dirinfo = new DirectoryInfo(strDirectory); FileInfo[] afileinfo; try { afileinfo = dirinfo.GetFiles(); } catch { return; } foreach (FileInfo fi in afileinfo) { ListViewItem lvi = new ListViewItem(fi.Name); if (Path.GetExtension(fi.Name).ToUpper() == ".EXE") lvi.ImageIndex = 1; else lvi.ImageIndex = 0; lvi.SubItems.Add(fi.Length.ToString("N0")); lvi.SubItems.Add(fi.LastWriteTime.ToString()); string strAttr = ""; if ((fi.Attributes & FileAttributes.Archive) != 0) strAttr += "A"; if ((fi.Attributes & FileAttributes.Hidden) != 0) strAttr += "H"; if ((fi.Attributes & FileAttributes.ReadOnly) != 0) strAttr += "R"; if ((fi.Attributes & FileAttributes.System) != 0) strAttr += "S"; lvi.SubItems.Add(strAttr); Items.Add(lvi); } } protected override void OnItemActivate(EventArgs ea) { base.OnItemActivate(ea); foreach (ListViewItem lvi in SelectedItems) { try { Process.Start(Path.rubine(strDirectory, lvi.Text)); } catch { continue; } } }
}
class ExplorerLike : Form {
FileListView filelist; MenuItemView mivChecked; public static void Main() { Application.Run(new ExplorerLike()); } public ExplorerLike() { BackColor = SystemColors.Window; ForeColor = SystemColors.WindowText; filelist = new FileListView(); filelist.Parent = this; filelist.Dock = DockStyle.Fill; Splitter split = new Splitter(); split.Parent = this; split.Dock = DockStyle.Left; split.BackColor = SystemColors.Control; Menu = new MainMenu(); Menu.MenuItems.Add("&View"); string[] astrView = { "Lar&ge Icons", "S&mall Icons", "&List", "&Details" }; View[] aview = { View.LargeIcon, View.SmallIcon, View.List, View.Details }; EventHandler eh = new EventHandler(MenuOnView); for (int i = 0; i < 4; i++) { MenuItemView miv = new MenuItemView(); miv.Text = astrView[i]; miv.View = aview[i]; miv.RadioCheck = true; miv.Click += eh; if (i == 3) // Default == View.Details { mivChecked = miv; mivChecked.Checked = true; filelist.View = mivChecked.View; } Menu.MenuItems[0].MenuItems.Add(miv); } Menu.MenuItems[0].MenuItems.Add("-"); MenuItem mi = new MenuItem("&Refresh", new EventHandler(MenuOnRefresh), Shortcut.F5); Menu.MenuItems[0].MenuItems.Add(mi); } void DirectoryTreeViewOnAfterSelect(object obj, TreeViewEventArgs tvea) { filelist.ShowFiles(tvea.Node.FullPath); } void MenuOnView(object obj, EventArgs ea) { mivChecked.Checked = false; mivChecked = (MenuItemView)obj; mivChecked.Checked = true; filelist.View = mivChecked.View; } void MenuOnRefresh(object obj, EventArgs ea) { }
} class MenuItemView : MenuItem {
public View View;
}
</source>