System Tray App

image_pdfimage_print



   

/*
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)

TabControl

image_pdfimage_print
   
 
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Windows.Forms;
using System.Text;

class Form1 : Form {
    public Form1() {
        this.tabPage2 = new System.Windows.Forms.TabPage();
        this.textBoxMessage = new System.Windows.Forms.TextBox();
        this.tabPage1 = new System.Windows.Forms.TabPage();
        this.buttonShowMessage = new System.Windows.Forms.Button();
        this.tabControl1 = new System.Windows.Forms.TabControl();
        this.tabPage2.SuspendLayout();
        this.tabPage1.SuspendLayout();
        this.tabControl1.SuspendLayout();
        this.SuspendLayout();

        this.tabPage2.Controls.Add(this.textBoxMessage);
        this.tabPage2.Location = new System.Drawing.Point(4, 22);
        this.tabPage2.Name = "tabPage2";
        this.tabPage2.Padding = new System.Windows.Forms.Padding(3);
        this.tabPage2.Size = new System.Drawing.Size(259, 37);
        this.tabPage2.TabIndex = 1;
        this.tabPage2.Text = "Tab Two";

        this.textBoxMessage.Location = new System.Drawing.Point(72, 7);
        this.textBoxMessage.Name = "textBoxMessage";
        this.textBoxMessage.Size = new System.Drawing.Size(100, 20);
        this.textBoxMessage.TabIndex = 0;

        this.tabPage1.Controls.Add(this.buttonShowMessage);
        this.tabPage1.Location = new System.Drawing.Point(4, 22);
        this.tabPage1.Name = "tabPage1";
        this.tabPage1.Padding = new System.Windows.Forms.Padding(3);
        this.tabPage1.Size = new System.Drawing.Size(259, 37);
        this.tabPage1.TabIndex = 0;
        this.tabPage1.Text = "Tab One";

        this.buttonShowMessage.Location = new System.Drawing.Point(74, 7);
        this.buttonShowMessage.Name = "buttonShowMessage";
        this.buttonShowMessage.Size = new System.Drawing.Size(107, 24);
        this.buttonShowMessage.TabIndex = 0;
        this.buttonShowMessage.Text = "Show Message";
        this.buttonShowMessage.Click += new System.EventHandler(this.buttonShowMessage_Click);

        this.tabControl1.Controls.Add(this.tabPage1);
        this.tabControl1.Controls.Add(this.tabPage2);
        this.tabControl1.Location = new System.Drawing.Point(13, 13);
        this.tabControl1.Name = "tabControl1";
        this.tabControl1.SelectedIndex = 0;
        this.tabControl1.Size = new System.Drawing.Size(267, 63);
        this.tabControl1.TabIndex = 0;

        this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
        this.ClientSize = new System.Drawing.Size(292, 83);
        this.Controls.Add(this.tabControl1);
        this.tabPage2.ResumeLayout(false);
        this.tabPage2.PerformLayout();
        this.tabPage1.ResumeLayout(false);
        this.tabControl1.ResumeLayout(false);
        this.ResumeLayout(false);
    }
    private void buttonShowMessage_Click(object sender, EventArgs e) {
        MessageBox.Show(this.textBoxMessage.Text);
    }
    private System.Windows.Forms.TabPage tabPage2;
    private System.Windows.Forms.TextBox textBoxMessage;
    private System.Windows.Forms.TabPage tabPage1;
    private System.Windows.Forms.Button buttonShowMessage;
    private System.Windows.Forms.TabControl tabControl1;
    [STAThread]
    static void Main() {
        Application.EnableVisualStyles();
        Application.Run(new Form1());
    }

}

    


Add ScrollBars to TextBox

image_pdfimage_print
   
 

using System;
using System.Drawing;
using System.Windows.Forms;
   
class NotepadCloneNoMenu: Form
{
     protected TextBox txtbox;
   
     public static void Main()
     {
          Application.Run(new NotepadCloneNoMenu());
     }
     public NotepadCloneNoMenu()
     {
          Text = "Notepad Clone No Menu";
   
          txtbox             = new TextBox();
          txtbox.Parent      = this;
          txtbox.Dock        = DockStyle.Fill;
          txtbox.BorderStyle = BorderStyle.None;
          txtbox.Multiline   = true;
          txtbox.ScrollBars  = ScrollBars.Both;
          txtbox.AcceptsTab  = true;
     }
}          

    


new TextBox(), Localtion, Name, TabIndex, Text

image_pdfimage_print
   
 

using System;
using System.Windows.Forms;

class MainForm : Form
{
    private Label label1;
    private TextBox textBox1;
    private Button button1;

    public MainForm()
    {
         this.label1 = new Label();
         this.textBox1 = new TextBox();
         this.button1 = new Button();
         this.SuspendLayout();

         this.label1.Location = new System.Drawing.Point(16, 36);
         this.label1.Name = "label1";
         this.label1.Size = new System.Drawing.Size(128, 16);
         this.label1.TabIndex = 0;
         this.label1.Text = "Please enter your name:"; 

         this.textBox1.Location = new System.Drawing.Point(152, 32);
         this.textBox1.Name = "textBox1";
         this.textBox1.TabIndex = 1;
         this.textBox1.Text = "";

         this.button1.Location = new System.Drawing.Point(109, 80);
         this.button1.Name = "button1";
         this.button1.TabIndex = 2;
         this.button1.Text = "Enter";
         this.button1.Click += new System.EventHandler(this.button1_Click);

         this.ClientSize = new System.Drawing.Size(292, 126);
         this.Controls.Add(this.button1);
         this.Controls.Add(this.textBox1);
         this.Controls.Add(this.label1);
         this.ResumeLayout(false);
     }
     private void button1_Click(object sender, System.EventArgs e)
     {
        System.Console.WriteLine("User entered: " + textBox1.Text);
        MessageBox.Show("Welcome, " + textBox1.Text, "Visual C#");
     }
     [STAThread]
     public static void Main()
     {
        Application.EnableVisualStyles();
        Application.Run(new MainForm());
     }
}

    


TextBox location

image_pdfimage_print


   
 

using System;
using System.Drawing;
using System.ComponentModel;
using System.Windows.Forms;

public class frmLogin : System.Windows.Forms.Form {
    System.Windows.Forms.TextBox txtUser;
    System.Windows.Forms.Button btnOK;
    System.Windows.Forms.Button btnCancel;

    public frmLogin() {
        txtUser = new System.Windows.Forms.TextBox();
        txtUser.Location = new Point(30, 15);
        txtUser.Size = new Size(250, 20);
        txtUser.Text = "";
        txtUser.Name = "txtUser";
        this.Controls.Add(txtUser);

        btnOK = new System.Windows.Forms.Button();
        btnOK.Location = new Point(40,(txtUser.Location.Y + txtUser.Size.Height + btnOK.Size.Height));
        btnOK.Text = "OK";
        btnOK.Name = "btnOK";
        this.Controls.Add(btnOK);

        btnCancel = new System.Windows.Forms.Button();
        btnCancel.Location = new Point((this.Size.Width -
                                        btnCancel.Size.Width) - 40,
           (txtUser.Location.Y + txtUser.Size.Height + btnOK.Size.Height));
        btnCancel.Text = "Cancel";
        btnCancel.Name = "btnCancel";
        this.Controls.Add(btnCancel);

        this.Size = new Size(this.Size.Width, btnCancel.Location.Y +
                             btnCancel.Size.Height + 60);

        btnCancel.Click += new System.EventHandler(btnCancelHandler);
        btnOK.Click += new System.EventHandler(btnEventHandler);
    }

    private void btnEventHandler(object sender, System.EventArgs e) {
        MessageBox.Show(((Button)sender).Name);
    }

    private void btnCancelHandler(object sender, System.EventArgs e) {
        MessageBox.Show("The second handler");
    }

    [STAThread]
    static void Main() {
        Application.Run(new frmLogin());
    }
}

    


Keyboard event and TextBox

image_pdfimage_print
   
 
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Text;

public class Form1 : System.Windows.Forms.Form {
    private System.Windows.Forms.TextBox textBox1;
    private System.Windows.Forms.TextBox textBox2;
    private System.Windows.Forms.GroupBox groupBox1;
    private System.Windows.Forms.Label label1;
    private System.Windows.Forms.GroupBox groupBox2;
    private System.Windows.Forms.Label label2;
    public Form1() {
        this.textBox1 = new System.Windows.Forms.TextBox();
        this.textBox2 = new System.Windows.Forms.TextBox();
        this.groupBox1 = new System.Windows.Forms.GroupBox();
        this.label1 = new System.Windows.Forms.Label();
        this.groupBox2 = new System.Windows.Forms.GroupBox();
        this.label2 = new System.Windows.Forms.Label();
        this.groupBox1.SuspendLayout();
        this.groupBox2.SuspendLayout();
        this.SuspendLayout();
        // 
        // textBox1
        // 
        this.textBox1.Location = new System.Drawing.Point(16, 24);
        this.textBox1.Name = "textBox1";
        this.textBox1.Size = new System.Drawing.Size(168, 20);
        this.textBox1.TabIndex = 5;
        this.textBox1.Text = "";
        this.textBox1.KeyDown += new System.Windows.Forms.KeyEventHandler(this.textBox1_KeyDown);
        // 
        // textBox2
        // 
        this.textBox2.Location = new System.Drawing.Point(16, 24);
        this.textBox2.Name = "textBox2";
        this.textBox2.Size = new System.Drawing.Size(168, 20);
        this.textBox2.TabIndex = 6;
        this.textBox2.Text = "";
        this.textBox2.KeyDown += new System.Windows.Forms.KeyEventHandler(this.textBox2_KeyDown);
        // 
        // groupBox1
        // 
        this.groupBox1.Controls.AddRange(new System.Windows.Forms.Control[] {
                                                                                this.label1,
                                                                                this.textBox1});
        this.groupBox1.Location = new System.Drawing.Point(8, 8);
        this.groupBox1.Name = "groupBox1";
        this.groupBox1.TabIndex = 7;
        this.groupBox1.TabStop = false;
        this.groupBox1.Text = "Key Monitor";
        // 
        // label1
        // 
        this.label1.Location = new System.Drawing.Point(16, 64);
        this.label1.Name = "label1";
        this.label1.Size = new System.Drawing.Size(168, 20);
        this.label1.TabIndex = 6;
        // 
        // groupBox2
        // 
        this.groupBox2.Controls.AddRange(new System.Windows.Forms.Control[] {
                                                                                this.textBox2,
                                                                                this.label2});
        this.groupBox2.Location = new System.Drawing.Point(8, 120);
        this.groupBox2.Name = "groupBox2";
        this.groupBox2.TabIndex = 8;
        this.groupBox2.TabStop = false;
        this.groupBox2.Text = "Keys Enumeration";
        // 
        // label2
        // 
        this.label2.Location = new System.Drawing.Point(16, 64);
        this.label2.Name = "label2";
        this.label2.Size = new System.Drawing.Size(168, 20);
        this.label2.TabIndex = 9;
        // 
        // Form1
        // 
        this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
        this.ClientSize = new System.Drawing.Size(216, 229);
        this.Controls.AddRange(new System.Windows.Forms.Control[] {
                                                                      this.groupBox2,
                                                                      this.groupBox1});
        this.groupBox1.ResumeLayout(false);
        this.groupBox2.ResumeLayout(false);
        this.ResumeLayout(false);

    }
    [STAThread]
    static void Main() {
        Application.Run(new Form1());
    }

    private void textBox1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e) {
        label1.Text = Convert.ToString(e.KeyValue);
    }

    private void textBox2_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e) {
        if (e.Shift) Console.WriteLine("Shift, ");
        if (e.Alt) Console.WriteLine("Alt, ");
        if (e.Control) Console.WriteLine("Ctrl, ");

        if (e.KeyCode == Keys.W || e.KeyCode == Keys.R ) {
            Console.WriteLine("W R ");
        } else if (e.KeyCode == Keys.Escape &amp;&amp; e.Modifiers == (Keys.Shift | Keys.Alt)) {
            Console.WriteLine("Escape");
        } else if (e.KeyCode == Keys.C &amp;&amp; e.Modifiers == (Keys.Alt | Keys.Control)) {
            Console.WriteLine("s");
            textBox2.SelectedText = "";
            textBox2.SelectionLength = 0;
        } else {
            Console.WriteLine(Convert.ToString(e.KeyData));
        }
    }
}

    


Set Text to Statusbar

image_pdfimage_print
   
 


using System;
using System.Drawing;
using System.Windows.Forms;
   
class SimpleStatusBar: Form
{
     public static void Main()
     {
          Application.Run(new SimpleStatusBar());
     }
     public SimpleStatusBar()
     {
          Text = "Simple Status Bar";
          ResizeRedraw = true;
   
          StatusBar sb = new StatusBar();
          sb.Parent = this;
          sb.Text = "My initial status bar text";
     }
     protected override void OnPaint(PaintEventArgs pea)
     {
          Graphics grfx = pea.Graphics;
          Pen      pen  = new Pen(ForeColor);
   
          grfx.DrawLine(pen, 0, 0, ClientSize.Width, ClientSize.Height);
          grfx.DrawLine(pen, ClientSize.Width, 0, 0, ClientSize.Height);
     }
}