Mega Code Archive

 
Categories / C# / GUI Windows Form
 

System Tray App

/* 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.ComponentModel; using System.Windows.Forms; namespace SystemTrayApp {   /// <summary>   /// Summary description for SystemTrayApp.   /// </summary>   public class SystemTrayApp : System.Windows.Forms.Form   {     internal System.Windows.Forms.Label Label1;     internal System.Windows.Forms.Button cmdClose;     internal System.Windows.Forms.ListBox lstFiles;     /// <summary>     /// Required designer variable.     /// </summary>     private System.ComponentModel.Container components = null;     public SystemTrayApp()     {       //       // 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.Label1 = new System.Windows.Forms.Label();       this.cmdClose = new System.Windows.Forms.Button();       this.lstFiles = new System.Windows.Forms.ListBox();       this.SuspendLayout();       //        // Label1       //        this.Label1.Location = new System.Drawing.Point(10, 7);       this.Label1.Name = "Label1";       this.Label1.Size = new System.Drawing.Size(140, 16);       this.Label1.TabIndex = 5;       this.Label1.Text = "Recently created files:";       //        // cmdClose       //        this.cmdClose.Anchor = (System.Windows.Forms.AnchorStyles.Bottom |                        System.Windows.Forms.AnchorStyles.Right);       this.cmdClose.FlatStyle = System.Windows.Forms.FlatStyle.System;       this.cmdClose.Location = new System.Drawing.Point(162, 203);       this.cmdClose.Name = "cmdClose";       this.cmdClose.Size = new System.Drawing.Size(88, 24);       this.cmdClose.TabIndex = 4;       this.cmdClose.Text = "Close";       this.cmdClose.Click += new System.EventHandler(this.cmdClose_Click);       //        // lstFiles       //        this.lstFiles.Anchor = (((System.Windows.Forms.AnchorStyles.Top |                           System.Windows.Forms.AnchorStyles.Bottom)          | System.Windows.Forms.AnchorStyles.Left)          | System.Windows.Forms.AnchorStyles.Right);       this.lstFiles.IntegralHeight = false;       this.lstFiles.Location = new System.Drawing.Point(10, 27);       this.lstFiles.Name = "lstFiles";       this.lstFiles.Size = new System.Drawing.Size(240, 168);       this.lstFiles.TabIndex = 3;       //        // SystemTrayApp       //        this.AutoScaleBaseSize = new System.Drawing.Size(5, 14);       this.ClientSize = new System.Drawing.Size(260, 234);       this.Controls.AddRange(new System.Windows.Forms.Control[] {                 this.Label1,                  this.cmdClose,                   this.lstFiles});       this.Font = new System.Drawing.Font("Tahoma", 8.25F,                           System.Drawing.FontStyle.Regular,                           System.Drawing.GraphicsUnit.Point,                           ((System.Byte)(0)));       this.Name = "SystemTrayApp";       this.Text = "SystemTrayApp";       this.ResumeLayout(false);     }     #endregion     private void cmdClose_Click(object sender, System.EventArgs e)     {       this.Close();     }     public void FillList(ArrayList list)     {       lstFiles.DataSource = list;     }   } } //==================================================================== //==================================================================== using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.IO; namespace SystemTrayApp {   public class App   {     // Define the system tray icon control.     private NotifyIcon appIcon = new NotifyIcon();     // Define the menu.     private ContextMenu sysTrayMenu = new ContextMenu();     private MenuItem displayFiles = new MenuItem("Display New Files");     private MenuItem exitApp = new MenuItem("Exit");     // Define the file system watcher, and a list to store filenames.     private FileSystemWatcher watch = new FileSystemWatcher();     private ArrayList newFiles = new ArrayList();     public void Start()     {       // Configure the system tray icon.       Icon ico = new Icon("icon.ico");       appIcon.Icon = ico;       appIcon.Text = "My .NET Application";        // Place the menu items in the menu.        sysTrayMenu.MenuItems.Add(displayFiles);       sysTrayMenu.MenuItems.Add(exitApp);       appIcon.ContextMenu = sysTrayMenu;       // Show the system tray icon.       appIcon.Visible = true;       // Hook up the file watcher.       watch.Path = "c:\\";       watch.IncludeSubdirectories = true;       watch.EnableRaisingEvents = true;       // Attach event handlers.       watch.Created += new FileSystemEventHandler(FileCreated);       displayFiles.Click += new EventHandler(DisplayFiles);       exitApp.Click += new EventHandler(ExitApp);     }     private void FileCreated(object sender, System.IO.FileSystemEventArgs e)     {       newFiles.Add(e.Name);     }     private void ExitApp(object sender, System.EventArgs e)     {       Application.Exit();     }     private void DisplayFiles(object sender, System.EventArgs e)     {       FileList frmFileList = new FileList();       frmFileList.FillList(newFiles);       frmFileList.Show();     }     public static void Main()     {       App app = new App();       app.Start();       // Because no forms are being displayed, you need this        // statement to stop the application from automatically ending.       Application.Run();     }   } }                     SystemTrayApp.zip( 26 k)