⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 form1.cs

📁 类似outlook风格的程序
💻 CS
字号:
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Reflection;
using System.Resources;
using System.Diagnostics;
using System.Xml;

using UtilityLibrary.WinControls;
using UtilityLibrary.CommandBars;
using UtilityLibrary.Menus;
using UtilityLibrary.General;

namespace Demo
{
	/// <summary>
	/// Summary description for Form1.
	/// </summary>
	public class Form1 : System.Windows.Forms.Form
	{
		/// <summary>
		/// Required designer variable.
		/// </summary>
		private System.ComponentModel.Container components = null;
		OutlookBar outlookBar1 = null;
		ResourceManager rmBitmaps = null;
		ResourceManager rmListImages = null;
		ImageList treeImageList = null;
		TreeViewEx treeView1 = null;
		ImageList outlookLargeIcons = null;
		ImageList outlookSmallIcons = null;
		ImageList myShortcutsLargeIcons = null;
		ImageList myShortcutsSmallIcons = null;
	
		private ListViewEx listView1;
		private ImageList imageList;
		private ImageList headerImageList;
		private System.Windows.Forms.ColumnHeader cityColumn;
		private System.Windows.Forms.ColumnHeader populationColumn;
		private System.Windows.Forms.ColumnHeader incomeColumn;
		private System.Windows.Forms.ColumnHeader dateColumn;

		public Form1()
		{
			
			Assembly thisAssembly = Assembly.GetAssembly(Type.GetType("Demo.Form1"));
			rmListImages = new ResourceManager("IconImages", thisAssembly);
			rmBitmaps = new ResourceManager("Menus", thisAssembly);
			
			//
			// Required for Windows Form Designer support
			//
			InitializeImageLists();
			InitializeOutlookBar();
		    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()
		{
			// 
			// Form1
			// 
			this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
			this.ClientSize = new System.Drawing.Size(115, 390);
			this.Name = "Form1";
			this.Text = "OutlookBar";

		}
		#endregion


		void InitializeImageLists()
		{

			imageList = new ImageList();
			imageList.ImageSize = new Size(16, 16);
			Bitmap icons = (Bitmap)rmListImages.GetObject("ListIcons");
			icons.MakeTransparent(Color.FromArgb(192,192,192));
			imageList.Images.AddStrip(icons);

			headerImageList = new ImageList();
			headerImageList.ImageSize = new Size(16, 16);
			icons = (Bitmap)rmListImages.GetObject("HeaderIcons");
			icons.MakeTransparent(Color.FromArgb(0,255,255));
			headerImageList.Images.AddStrip(icons);

			outlookLargeIcons = new ImageList();
			outlookLargeIcons.ImageSize = new Size(32, 32);
			icons = (Bitmap)rmListImages.GetObject("OutlookLargeIcons");
			icons.MakeTransparent(Color.FromArgb(255,0,255));
			outlookLargeIcons.Images.AddStrip(icons);

			outlookSmallIcons = new ImageList();
			outlookSmallIcons.ImageSize = new Size(16, 16);
			icons = (Bitmap)rmListImages.GetObject("OutlookSmallIcons");
			icons.MakeTransparent(Color.FromArgb(255,0,255));
			outlookSmallIcons.Images.AddStrip(icons);

			myShortcutsLargeIcons = new ImageList();
			myShortcutsLargeIcons.ColorDepth = ColorDepth.Depth32Bit;	
			myShortcutsLargeIcons.ImageSize = new Size(48, 48);
			icons = (Bitmap)rmListImages.GetObject("MyShortcutsLargeIcons");
			icons.MakeTransparent(Color.FromArgb(255,0,255));
			myShortcutsLargeIcons.Images.AddStrip(icons);

			myShortcutsSmallIcons = new ImageList();
			myShortcutsSmallIcons.ImageSize = new Size(16, 16);
			icons = (Bitmap)rmListImages.GetObject("MyShortcutsSmallIcons");
			icons.MakeTransparent(Color.FromArgb(255,0,255));
			myShortcutsSmallIcons.Images.AddStrip(icons);

		}

		void InitializeOutlookBar()
		{
			// Create controls
			outlookBar1 = new OutlookBar();
			listView1 = new ListViewEx();
			treeView1 = new TreeViewEx();
		
			// Initialize the list control
			InitializeListControl();
			InitializeTreeControl();

			// Outlook shortcuts band
			OutlookBarBand outlookShortcutsBand = new OutlookBarBand("Outlook Shortcuts");
			outlookShortcutsBand.SmallImageList = outlookSmallIcons;
			outlookShortcutsBand.LargeImageList = outlookLargeIcons;
            outlookShortcutsBand.Items.Add(new OutlookBarItem("Outlook Today", 0));
			outlookShortcutsBand.Items.Add(new OutlookBarItem("Inbox", 1));
			outlookShortcutsBand.Items.Add(new OutlookBarItem("Calendar", 2));
			outlookShortcutsBand.Items.Add(new OutlookBarItem("Contacts", 3));
			outlookShortcutsBand.Items.Add(new OutlookBarItem("Tasks", 4));
			outlookShortcutsBand.Items.Add(new OutlookBarItem("Notes", 5));
			outlookShortcutsBand.Items.Add(new OutlookBarItem("Deleted Items", 6));
			outlookBar1.Bands.Add(outlookShortcutsBand);
			
			// My shortcuts band
			OutlookBarBand myShorcutsBand = new OutlookBarBand("My Shorcuts");
			myShorcutsBand.SmallImageList = myShortcutsSmallIcons;
			myShorcutsBand.LargeImageList = myShortcutsLargeIcons;
			myShorcutsBand.Items.Add(new OutlookBarItem("Contacts", 0));
			myShorcutsBand.Items.Add(new OutlookBarItem("Music", 1));
			myShorcutsBand.Items.Add(new OutlookBarItem("Defragment", 2));
			myShorcutsBand.Items.Add(new OutlookBarItem("Games", 3));
			myShorcutsBand.Items.Add(new OutlookBarItem("Security", 4));
			myShorcutsBand.Items.Add(new OutlookBarItem("Users", 5));
			myShorcutsBand.Items.Add(new OutlookBarItem("Fonts", 6));
			myShorcutsBand.Items.Add(new OutlookBarItem("Speaker", 7));
			myShorcutsBand.Items.Add(new OutlookBarItem("Pictures", 8));
			myShorcutsBand.Background = SystemColors.AppWorkspace;
			myShorcutsBand.TextColor = Color.White;
			outlookBar1.Bands.Add(myShorcutsBand);

			outlookBar1.Bands.Add(new OutlookBarBand("TreeView", treeView1));
			outlookBar1.Bands.Add(new OutlookBarBand("ListView", listView1));
			outlookBar1.Dock = DockStyle.Fill;
			outlookBar1.SetCurrentBand(1);
			outlookBar1.ItemClicked += new OutlookBarItemClickedHandler(OnOutlookBarItemClicked);
			outlookBar1.ItemDropped += new OutlookBarItemDroppedHandler(OnOutlookBarItemDropped);

			// New properties
			//outlookBar1.FlatArrowButtons = true;
     
			this.Controls.AddRange(new Control[]{outlookBar1});
				
		}

		// Initialize ListView control
		#region
		void InitializeListControl()
		{
			this.cityColumn = new System.Windows.Forms.ColumnHeader();
			this.populationColumn = new System.Windows.Forms.ColumnHeader();
			this.incomeColumn = new System.Windows.Forms.ColumnHeader();
			this.dateColumn = new System.Windows.Forms.ColumnHeader();
						
			// 
			// listView1
			// 
			this.listView1.Dock = DockStyle.Fill;
			this.listView1.BorderStyle = System.Windows.Forms.BorderStyle.None;
			this.listView1.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
																						this.cityColumn,
																						this.populationColumn,
																						this.incomeColumn,
																						this.dateColumn});
			this.listView1.Name = "listView1";
			this.listView1.TabIndex = 0;
			this.listView1.CheckBoxes = true;
			this.listView1.Location = new System.Drawing.Point(10, 8);
			this.listView1.Size = new System.Drawing.Size(425, 120);

			// 
			// cityColumn
			// 
			this.cityColumn.Text = "City";
			this.cityColumn.Width = 81;
			// 
			// populationColumn
			// 
			this.populationColumn.Text = "Population";
			this.populationColumn.Width = 81;
			// 
			// incomeColumn
			// 
			this.incomeColumn.Text = "Income";
			this.incomeColumn.Width = 97;
			// 
			// dateColumn
			// 
			this.dateColumn.Text = "Date Entered";
			this.dateColumn.Width = 140;
			
			ListViewItem lvi =listView1.Items.Add("Oregon");
			lvi.Selected = true;
			lvi.SubItems.Add("380");
			lvi.SubItems.Add("89,000.40");
			DateTime dateTime = 
				new DateTime
				(1979,      // Year
				07,         // Month
				28,         // Day
				22,         // Hour
				35,         // Minute
				5           // Second
				);
			lvi.SubItems.Add(dateTime.ToString());

			lvi =listView1.Items.Add("Hawai");
			lvi.SubItems.Add("440");
			lvi.SubItems.Add("65,450.40");
			dateTime = new DateTime
				(1963,      // Year
				10,         // Month
				12,         // Day
				23,         // Hour
				08,         // Minute
				2           // Second
				);
			lvi.SubItems.Add(dateTime.ToString());

			lvi =listView1.Items.Add("New York");
			lvi.SubItems.Add("217");
			lvi.SubItems.Add("120,809.12");
			dateTime = new DateTime
				(1902,      // Year
				8,          // Month
				9,          // Day
				5,          // Hour
				23,         // Minute
				56          // Second
				);
			lvi.SubItems.Add(dateTime.ToString());

			listView1.InitialSortedColumn = 2;
			listView1.HeaderImageList = headerImageList;

			// Associate header items with icon indexes
			// SetHeaderIcon(int headerIndex, int iconIndex)
			// icon indexes does not have to match the header index
			// you just need to make sure that the index do exist in the 
			// HeaderImageList 
			listView1.SetHeaderIcon(0, 0);
			listView1.SetHeaderIcon(1, 1);
			listView1.SetHeaderIcon(2, 2);

			// Sorting settings
			listView1.SetColumnSortFormat(0, SortedListViewFormatType.String);
			listView1.SetColumnSortFormat(1, SortedListViewFormatType.Numeric);
			listView1.SetColumnSortFormat(2, SortedListViewFormatType.Numeric);
			listView1.SetColumnSortFormat(3, SortedListViewFormatType.Date);


		}
		#endregion

		// Initialize Tree Control
		#region
        void InitializeTreeControl()
		{
			// Use new support added to the ResourceUtil class
			treeImageList = ResourceUtil.LoadImageListResource(Type.GetType("Demo.Form1"), 
				"TreeViewImages", "TreeIcons",new Size(16,16), true, new Point(0,0));
			
			SuspendLayout();
			 
			// treeView1
			treeView1.BorderStyle = System.Windows.Forms.BorderStyle.None;
			treeView1.Dock = System.Windows.Forms.DockStyle.Fill;
			treeView1.ImageIndex = -1;
			treeView1.Name = "treeView1";
			treeView1.SelectedImageIndex = -1;
			treeView1.Size = new System.Drawing.Size(292, 266);
			treeView1.TabIndex = 0;
			treeView1.ImageList = treeImageList;
			
			TreeNode rootNode = new TreeNode("DeskTop");
			rootNode.ImageIndex = 0;
			rootNode.SelectedImageIndex = 0;
			treeView1.Nodes.AddRange(new System.Windows.Forms.TreeNode[]{rootNode});
            
			// Add the children to the rootNode
			TreeNode myComputer = new TreeNode("My Computer");
			myComputer.ImageIndex = 4;
			myComputer.SelectedImageIndex = 4;
			rootNode.Nodes.Add(myComputer);
			
			TreeNode hardDiskNode = new TreeNode("Local Disk (C:)");
			hardDiskNode.ImageIndex = 3;
			hardDiskNode.SelectedImageIndex = 3;
			myComputer.Nodes.Add(hardDiskNode);

			TreeNode folder1 = new TreeNode("Folder 1");
			folder1.ImageIndex = 2;
			folder1.SelectedImageIndex = 2;
			hardDiskNode.Nodes.Add(folder1);

			TreeNode folder2 = new TreeNode("Folder 2");
			folder2.ImageIndex = 2;
			folder2.SelectedImageIndex = 2;
			hardDiskNode.Nodes.Add(folder2);

			TreeNode folder3 = new TreeNode("Folder 3");
			folder3.ImageIndex = 2;
			folder3.SelectedImageIndex = 2;
			treeView1.SelectedNode = folder3;
			hardDiskNode.Nodes.Add(folder3);

			TreeNode folder4 = new TreeNode("Folder 4");
			folder4.ImageIndex = 2;
			folder4.SelectedImageIndex = 2;
			hardDiskNode.Nodes.Add(folder4);

			TreeNode dvdNode = new TreeNode("DVD Drive (D:)");
			dvdNode.ImageIndex = 1;
			dvdNode.SelectedImageIndex = 1;
			myComputer.Nodes.Add(dvdNode);

			TreeNode folder5 = new TreeNode("Folder 5");
			folder5.ImageIndex = 2;
			folder5.SelectedImageIndex = 2;
			dvdNode.Nodes.Add(folder5);

			TreeNode folder6 = new TreeNode("Folder 6");
			folder6.ImageIndex = 2;
			folder6.SelectedImageIndex = 2;
			dvdNode.Nodes.Add(folder6);

			TreeNode folder7 = new TreeNode("Folder 7");
			folder7.ImageIndex = 2;
			folder7.SelectedImageIndex = 2;
			dvdNode.Nodes.Add(folder7);

			TreeNode folder8 = new TreeNode("Folder 8");
			folder8.ImageIndex = 2;
			folder8.SelectedImageIndex = 2;
			dvdNode.Nodes.Add(folder8);

			TreeNode zipNode = new TreeNode("Zip Drive (E:)");
			zipNode.ImageIndex = 10;
			zipNode.SelectedImageIndex = 10;
			myComputer.Nodes.Add(zipNode);

			TreeNode myNetworkPlaces = new TreeNode("My Network Places");
			myNetworkPlaces.ImageIndex = 7;
			myNetworkPlaces.SelectedImageIndex = 7;
			rootNode.Nodes.Add(myNetworkPlaces);

			TreeNode recycleBin = new TreeNode("Recycle Bin");
			recycleBin.ImageIndex = 9;
			recycleBin.SelectedImageIndex = 9;
			rootNode.Nodes.Add(recycleBin);

			TreeNode  myDocuments = new TreeNode("My Documents");
			myDocuments.ImageIndex = 5;
			myDocuments.SelectedImageIndex = 5;
			rootNode.Nodes.Add(myDocuments);

			TreeNode  myPictures = new TreeNode("My Pictures");
			myPictures.ImageIndex = 8;
			myPictures.SelectedImageIndex = 8;
			myDocuments.Nodes.Add(myPictures);

			TreeNode  myMusic = new TreeNode("My Music");
			myMusic.ImageIndex = 6;
			myMusic.SelectedImageIndex = 6;
			myDocuments.Nodes.Add(myMusic);

			treeView1.SelectedImageIndex = -1;
			treeView1.Size = new System.Drawing.Size(436, 260);
			treeView1.TabIndex = 0;
			treeView1.Scrollable = false;

			treeView1.ExpandAll();

			this.ResumeLayout(false);
		}
		#endregion


		void OnOutlookBarItemClicked(OutlookBarBand band, OutlookBarItem item)
		{
		   string message = "Item : " + item.Text + " was clicked...";
		   MessageBox.Show(message);            
		}

		void OnOutlookBarItemDropped(OutlookBarBand band, OutlookBarItem item)
		{
			string message = "Item : " + item.Text + " was dropped...";
			MessageBox.Show(message);            
		}

		/// <summary>
		/// The main entry point for the application.
		/// </summary>
		[STAThread]
		static void Main() 
		{
			Application.Run(new Form1());
		}
		
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -