Csharp/C Sharp/GUI Windows Form/System Tray Icon — различия между версиями

Материал из .Net Framework эксперт
Перейти к: навигация, поиск
м (1 версия)
 
(нет различий)

Текущая версия на 14:33, 26 мая 2010

System Tray App

<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; 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.ruponentModel.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.ruponentModel; 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();
   }
 }

}


      </source>

<A href="http://www.nfex.ru/Code/CSharpDownload/SystemTrayApp.zip">SystemTrayApp.zip( 26 k)</a>