Master C# Logo banner
Welcome to MasterCSharp.com - Master C#, the easy way... - by Saurabh Nandu

 


Sticky Notepad

Add Comment
 

 
<div align="center"> <table border="0" width="70%" class="outline"> <tr> <td width="50%" class="outline"><b>Download File</b></td> <td width="50%" class="outline"><b>SDK</b></td> </tr> <tr> <td width="50%" class="outline"><a href="../../file/stickynote.zip" class="wbox">stickynote.zip</a> (27kb)</td> <td width="50%" class="outline">Beta1</td> </tr> </table> </div> <p> <span class=wboxheado>Introduction</span><br> I am from Java background and hence I wanted to experiment with writing a program that would run from the &quot;System Tray&quot; of Windows (that's where you have the date displayed) since that's not possible with pure Java.&nbsp;<br> So I have built an application which uses the &quot;TrayIcon&quot; component of WinForms to run the application from the System Tray.&nbsp;</p> <p><span class=wboxheado>Requirements</span><br> 1) .NET SDK beta1 (Note: This example might not run on future versions of the SDK)&nbsp;</p> <p><span class=wboxheado>Point To Remember</span><br> Don't forget to copy &quot;sticky.txt&quot; to the directory in which you will be running the program from.&nbsp;</p> <p><span class=wboxheado>Screen Shot</span><br> <img border="0" src="../../img/stickynotepad.gif" width="207" height="214"><br> Figure 1: Stick Notepad</p> <p><span class=wboxheado>Code</span><br> 1) <i><b>sticky.cs</b> :- The Sticky Notepad</i></p> <table border="0" width="100%" class="code" cellspacing="0" cellpadding="0"> <tr> <td width="100%"> <pre>namespace stickynote { <span class=cmt>//Import the necessary Assemblies</span> using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.WinForms; using System.Data; using System.IO ; <span class=cmt>/// &lt;summary&gt; /// The class to demonstrate a Sticky Pad /// &lt;/summary&gt;</span> public class sticky : System.WinForms.Form { <span class=cmt>/// &lt;summary&gt; /// Required designer variable. /// &lt;/summary&gt;</span> private System.ComponentModel.Container components; private System.WinForms.MenuItem menuItem4; private System.WinForms.MenuItem menuItem3; private System.WinForms.MenuItem menuItem2; private System.WinForms.MenuItem menuItem1; private System.WinForms.ContextMenu contextMenu1; <span class=cmt>//TrayIcon is used to place the Application in the System Tray</span> private System.WinForms.TrayIcon StickyNote; private System.WinForms.RichTextBox tbox; <span class=cmt> /// &lt;summary&gt; /// The Constructor /// We Call 2 methods here /// InitilizeComponent - to Initialize the winform /// read - to read the data from the text file /// &lt;/summary&gt;</span> public sticky() { InitializeComponent(); read(); } <span class=cmt>/// &lt;summary&gt; /// Clean up any resources being used. /// &lt;/summary&gt;</span> public override void Dispose() { <span class=cmt>//Before Disposing Save the Text</span> save(); this.StickyNote.Dispose(); base.Dispose(); components.Dispose(); } <span class=cmt>/// &lt;summary&gt; /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// &lt;/summary&gt;</span> private void InitializeComponent() { System.Resources.ResourceManager resources = new System.Resources.ResourceManager (typeof(sticky)); this.components = new System.ComponentModel.Container (); this.tbox = new System.WinForms.RichTextBox (); <span class=cmt>//Code for the context menu</span> this.contextMenu1 = new System.WinForms.ContextMenu (); this.menuItem4 = new System.WinForms.MenuItem (); this.menuItem2 = new System.WinForms.MenuItem (); this.menuItem1 = new System.WinForms.MenuItem (); this.StickyNote = new System.WinForms.TrayIcon (); this.menuItem3 = new System.WinForms.MenuItem (); tbox.AutoWordSelection = true; tbox.Size = new System.Drawing.Size (194, 156); tbox.ContextMenu = this.contextMenu1; tbox.TabIndex = 1; tbox.ScrollBars = System.WinForms.RichTextBoxScrollBars.Vertical; tbox.Dock = System.WinForms.DockStyle.Fill; tbox.CausesValidation = false; tbox.TabStop = false; tbox.BackColor = System.Drawing.Color.Orange; contextMenu1.MenuItems.All = new System.WinForms.MenuItem[4] {this.menuItem1, this.menuItem2, this.menuItem3, this.menuItem4}; menuItem4.Text = &quot;Exit&quot;; menuItem4.Index = 3; menuItem4.Click += new System.EventHandler (this.Exit); menuItem2.Text = &quot;Hide&quot;; menuItem2.Index = 1; menuItem2.Click += new System.EventHandler (this.minimise); menuItem1.Text = &quot;Show&quot;; menuItem1.Index = 0; menuItem1.Click += new System.EventHandler (this.maximise); menuItem3.Text = &quot;Help&quot;; menuItem3.Index = 2; menuItem3.Click += new System.EventHandler (this.helpme); <span class=cmt>//Code for the TrayIcon</span> StickyNote.Text = &quot;StickyNote&quot;; StickyNote.Visible = true; StickyNote.Icon = (System.Drawing.Icon) resources.GetObject (&quot;StickyNote.Icon&quot;); StickyNote.ContextMenu = this.contextMenu1; this.Text = &quot;Sticky Note, By Saurabh Nandu&quot;; this.MaximizeBox = false; this.AutoScaleBaseSize = new System.Drawing.Size (5, 13); this.BorderStyle = System.WinForms.FormBorderStyle.FixedSingle; this.ContextMenu = this.contextMenu1; <span class=cmt>//Set the initial state to minimized</span> this.WindowState = System.WinForms.FormWindowState.Minimized; <span class=cmt>//Do not show in the Task Bar</span> this.ShowInTaskbar = false; this.Icon = (System.Drawing.Icon)resources.GetObject(&quot;$this.Icon&quot;); this.CausesValidation = false; <span class=cmt>//Show the WinForm above all other Applications</span> this.TopMost = true; <span class=cmt>//Hide the Control Box (The box containing the //(Maximize, Minimize, and Close buttons)</span> this.ControlBox = false; this.BackColor = System.Drawing.Color.Orange; this.ClientSize = new System.Drawing.Size (194, 156); this.Controls.Add (this.tbox); } <span class=cmt>/// &lt;summary&gt; /// This function is called when &quot;Hide&quot; /// is selected from the context menu /// &lt;/summary&gt;</span> protected void minimise (object sender, System.EventArgs e) { if(this.Visible) { <span class=cmt>//Hide the Application</span> this.Hide(); } } <span class=cmt>/// &lt;summary&gt; /// This method is called when &quot;Show&quot; /// is selected from the context Menu /// &lt;/summary&gt;</span> protected void maximise (object sender, System.EventArgs e) { <span class=cmt>//Maximize the Window //Why??? since we are initially setting the WinForms //State to &quot;Minimized&quot; in the constructor</span> this.WindowState = System.WinForms.FormWindowState.Normal; if(!this.Visible) { //If the Window is hidded //Show it this.Show(); } } <span class=cmt>/// &lt;summary&gt; /// Method called when &quot;Help&quot; button clicked /// &lt;/summary&gt;</span> protected void helpme (object sender, System.EventArgs e) { MessageBox.Show(&quot;Sticky Note Made by Saurabh Nandu, saurabh@mastercsharp.com&quot;) ; } <span class=cmt>/// &lt;summary&gt; /// Called when &quot;Exit&quot; is selected from the context menu. /// &lt;/summary&gt;</span> protected void Exit (object sender, System.EventArgs e) { <span class=cmt>//Call the Dispose Method</span> this.Close(); } <span class=cmt>/// &lt;summary&gt; /// This method is called from the destructor (Dispose) /// It saves the Data to the Text File /// &lt;/summary&gt;</span> protected void save() { <span class=cmt>//Open a File Stream</span> FileStream fout = new FileStream(&quot;sticky.txt&quot;, FileMode.Open, FileAccess.Write, FileShare.ReadWrite) ; <span class=cmt>//Get a StreamWriter , since its easy to write string with it.</span> StreamWriter sw = new StreamWriter(fout) ; <span class=cmt>//Write the contents for the RichTextBox</span> sw.Write(tbox.Text); <span class=cmt>//Close the Streams</span> sw.Close(); fout.Close(); } <span class=cmt>/// &lt;summary&gt; /// This method is called from the constructor /// It read the text from the Text file /// and displays it in the RichTextBox /// &lt;/summary&gt;</span> protected void read() { <span class=cmt>//Open the streams to the file</span> FileStream fin = new FileStream(&quot;sticky.txt&quot;, FileMode.Open, FileAccess.Read, FileShare.ReadWrite) ; StreamReader tr = new StreamReader(fin) ; <span class=cmt>//Read the data, I use &quot;ReadToEnd&quot; cause with it you //can read the whole file in one shot !</span> tbox.Text = tr.ReadToEnd(); <span class=cmt>//Close the streams</span> tr.Close(); fin.Close(); } <span class=cmt>/// &lt;summary&gt; /// The main entry point for the application. /// &lt;/summary&gt;</span> public static void Main(string[] args) { Application.Run(new sticky()); } } }</pre> </td> </tr> </table>

Comments

Add Comment