Csharp/C Sharp/GUI Windows Form/System Tray Icon — различия между версиями
Admin (обсуждение | вклад) м (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>