using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Threading;
public class Form1 : System.Windows.Forms.Form {
private System.Windows.Forms.ProgressBar progressBar1;
private System.Windows.Forms.Button button1;
private System.Windows.Forms.Button button2;
private Thread fThread = null;
private System.ComponentModel.Container components = null;
public Form1() {
this.progressBar1 = new System.Windows.Forms.ProgressBar();
this.button1 = new System.Windows.Forms.Button();
this.button2 = new System.Windows.Forms.Button();
this.SuspendLayout();
this.progressBar1.Location = new System.Drawing.Point(24, 32);
this.progressBar1.Name = "progressBar1";
this.progressBar1.Size = new System.Drawing.Size(264, 23);
this.progressBar1.TabIndex = 0;
this.button1.Location = new System.Drawing.Point(24, 80);
this.button1.Size = new System.Drawing.Size(136, 40);
this.button1.Text = "Start Thread";
this.button1.Click += new
System.EventHandler(this.button1_Click);
this.button2.Location = new System.Drawing.Point(168, 80);
this.button2.Size = new System.Drawing.Size(120, 40);
this.button2.Text = "Stop Thread";
this.button2.Click += new
System.EventHandler(this.button2_Click);
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(704, 429);
this.Controls.AddRange(new System.Windows.Forms.Control[] {
this.button2,
this.button1,
this.progressBar1});
this.ResumeLayout(false);
}
protected override void Dispose(bool disposing) {
if (fThread != null) {
fThread.Interrupt();
fThread = null;
}
}
[STAThread]
static void Main() {
Application.Run(new Form1());
}
private void UpdateProgress() {
if (progressBar1.Value == progressBar1.Maximum) {
progressBar1.Value = progressBar1.Minimum;
}
progressBar1.PerformStep();
}
public void ThreadProc() {
try {
MethodInvoker mi = new MethodInvoker(this.UpdateProgress);
while (true) {
this.BeginInvoke(mi);
Thread.Sleep(500);
}
} catch (ThreadInterruptedException e) {
Console.WriteLine(
"Interruption Exception in Thread: {0}",
e);
} catch (Exception we) {
Console.WriteLine("Exception in Thread: {0}", we);
}
}
private void button1_Click(object sender, System.EventArgs e) {
fThread = new Thread(new ThreadStart(ThreadProc));
fThread.IsBackground = true;
fThread.Start();
}
private void button2_Click(object sender, System.EventArgs e) {
fThread.Interrupt();
fThread = null;
}
}
ASP.NET & Csharp (C#)
ASP.NET & Csharp (C#) , Here you can find my posts about .NET c# .
Simple Editor based on TextBox
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
public class SimpleEditorForm : Form {
private string filename = "Untitled";
public SimpleEditorForm(string filename) {
InitializeComponent();
if (filename != null) {
this.filename = filename;
OpenFile();
}
}
protected void OpenFile() {
try {
textBoxEdit.Clear();
textBoxEdit.Text = File.ReadAllText(filename);
} catch (IOException ex) {
MessageBox.Show(ex.Message, "Simple Editor",
MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
}
private void OnFileNew(object sender, EventArgs e) {
filename = "Untitled";
textBoxEdit.Clear();
}
private void OnFileOpen(object sender, EventArgs e) {
if (dlgOpenFile.ShowDialog() == DialogResult.OK) {
filename = dlgOpenFile.FileName;
OpenFile();
}
}
private void OnFileSave(object sender, EventArgs e) {
}
private void OnFileSaveAs(object sender, EventArgs e) {
}
private void InitializeComponent() {
this.textBoxEdit = new System.Windows.Forms.TextBox();
this.mainMenu = new System.Windows.Forms.MenuStrip();
this.miFile = new System.Windows.Forms.ToolStripMenuItem();
this.miFileNew = new System.Windows.Forms.ToolStripMenuItem();
this.miFileOpen = new System.Windows.Forms.ToolStripMenuItem();
this.miFileSave = new System.Windows.Forms.ToolStripMenuItem();
this.miFileSaveAs = new System.Windows.Forms.ToolStripMenuItem();
this.dlgOpenFile = new System.Windows.Forms.OpenFileDialog();
this.mainMenu.SuspendLayout();
this.SuspendLayout();
//
// textBoxEdit
//
this.textBoxEdit.AcceptsReturn = true;
this.textBoxEdit.AcceptsTab = true;
this.textBoxEdit.Dock = System.Windows.Forms.DockStyle.Fill;
this.textBoxEdit.Location = new System.Drawing.Point(0, 24);
this.textBoxEdit.Multiline = true;
this.textBoxEdit.Name = "textBoxEdit";
this.textBoxEdit.ScrollBars = System.Windows.Forms.ScrollBars.Both;
this.textBoxEdit.Size = new System.Drawing.Size(562, 219);
this.textBoxEdit.TabIndex = 0;
//
// mainMenu
//
this.mainMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.miFile});
this.mainMenu.Location = new System.Drawing.Point(0, 0);
this.mainMenu.Name = "mainMenu";
this.mainMenu.Size = new System.Drawing.Size(562, 24);
this.mainMenu.TabIndex = 1;
this.mainMenu.Text = "menuStrip1";
//
// miFile
//
this.miFile.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.miFileNew,
this.miFileOpen,
this.miFileSave,
this.miFileSaveAs});
this.miFile.Name = "miFile";
this.miFile.Text = "&File";
//
// miFileNew
//
this.miFileNew.Name = "miFileNew";
this.miFileNew.Text = "&New";
this.miFileNew.Click += new System.EventHandler(this.OnFileNew);
//
// miFileOpen
//
this.miFileOpen.Name = "miFileOpen";
this.miFileOpen.Text = "&Open";
this.miFileOpen.Click += new System.EventHandler(this.OnFileOpen);
//
// miFileSave
//
this.miFileSave.Name = "miFileSave";
this.miFileSave.Text = "&Save";
this.miFileSave.Click += new System.EventHandler(this.OnFileSave);
//
// miFileSaveAs
//
this.miFileSaveAs.Name = "miFileSaveAs";
this.miFileSaveAs.Text = "Save &As";
this.miFileSaveAs.Click += new System.EventHandler(this.OnFileSaveAs);
//
// dlgOpenFile
//
this.dlgOpenFile.Filter = "Text Documents (*.txt)|*.txt|Wrox Documents (*.wroxtext)|*.wroxtext|All Files|*.*" +
"";
this.dlgOpenFile.FilterIndex = 2;
//
// SimpleEditorForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(562, 243);
this.Controls.Add(this.textBoxEdit);
this.Controls.Add(this.mainMenu);
this.MainMenuStrip = this.mainMenu;
this.Name = "SimpleEditorForm";
this.Text = "Simple Editor";
this.mainMenu.ResumeLayout(false);
this.ResumeLayout(false);
this.PerformLayout();
}
private System.Windows.Forms.TextBox textBoxEdit;
private System.Windows.Forms.MenuStrip mainMenu;
private System.Windows.Forms.ToolStripMenuItem miFile;
private System.Windows.Forms.ToolStripMenuItem miFileNew;
private System.Windows.Forms.ToolStripMenuItem miFileOpen;
private System.Windows.Forms.ToolStripMenuItem miFileSave;
private System.Windows.Forms.ToolStripMenuItem miFileSaveAs;
private System.Windows.Forms.OpenFileDialog dlgOpenFile;
[STAThread]
static void Main(string[] args) {
string filename = null;
if (args.Length != 0)
filename = args[0];
Application.EnableVisualStyles();
Application.Run(new SimpleEditorForm(filename));
}
}
TextBox Demo
/*
Professional Windows GUI Programming Using C#
by Jay Glynn, Csaba Torok, Richard Conway, Wahid Choudhury,
Zach Greenvoss, Shripad Kulkarni, Neil Whitlow
Publisher: Peer Information
ISBN: 1861007663
*/
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
namespace TextBox
{
/// <summary>
/// Summary description for TextBox.
/// </summary>
public class TextBox : System.Windows.Forms.Form
{
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.Label label4;
private System.Windows.Forms.TextBox SINGLE_LINE;
private System.Windows.Forms.TextBox PASSWORD_LINE;
private System.Windows.Forms.TextBox MULTI_LINE;
private System.Windows.Forms.RichTextBox RICH_EDIT;
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.Container components = null;
public TextBox()
{
//
// 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.SINGLE_LINE = new System.Windows.Forms.TextBox();
this.label1 = new System.Windows.Forms.Label();
this.PASSWORD_LINE = new System.Windows.Forms.TextBox();
this.label2 = new System.Windows.Forms.Label();
this.label3 = new System.Windows.Forms.Label();
this.MULTI_LINE = new System.Windows.Forms.TextBox();
this.RICH_EDIT = new System.Windows.Forms.RichTextBox();
this.label4 = new System.Windows.Forms.Label();
this.SuspendLayout();
//
// SINGLE_LINE
//
this.SINGLE_LINE.CharacterCasing = System.Windows.Forms.CharacterCasing.Upper;
this.SINGLE_LINE.ForeColor = System.Drawing.Color.FromArgb(((System.Byte)(128)), ((System.Byte)(64)), ((System.Byte)(64)));
this.SINGLE_LINE.Location = new System.Drawing.Point(32, 40);
this.SINGLE_LINE.Name = "SINGLE_LINE";
this.SINGLE_LINE.Size = new System.Drawing.Size(408, 20);
this.SINGLE_LINE.TabIndex = 0;
this.SINGLE_LINE.Text = "THIS IS A SINGLELINE EDIT CONTROL";
//
// label1
//
this.label1.Location = new System.Drawing.Point(32, 24);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(168, 16);
this.label1.TabIndex = 1;
this.label1.Text = "Single Line TextBox";
//
// PASSWORD_LINE
//
this.PASSWORD_LINE.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));
this.PASSWORD_LINE.Location = new System.Drawing.Point(32, 104);
this.PASSWORD_LINE.Name = "PASSWORD_LINE";
this.PASSWORD_LINE.PasswordChar = '^';
this.PASSWORD_LINE.Size = new System.Drawing.Size(104, 22);
this.PASSWORD_LINE.TabIndex = 2;
this.PASSWORD_LINE.Text = "";
//
// label2
//
this.label2.Location = new System.Drawing.Point(32, 80);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(160, 16);
this.label2.TabIndex = 3;
this.label2.Text = "Password TextBox";
//
// label3
//
this.label3.Location = new System.Drawing.Point(32, 136);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(120, 16);
this.label3.TabIndex = 4;
this.label3.Text = "MultiLine TextBox";
//
// MULTI_LINE
//
this.MULTI_LINE.AcceptsReturn = true;
this.MULTI_LINE.AcceptsTab = true;
this.MULTI_LINE.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, (System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic), System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));
this.MULTI_LINE.ForeColor = System.Drawing.SystemColors.HotTrack;
this.MULTI_LINE.Location = new System.Drawing.Point(32, 160);
this.MULTI_LINE.MaxLength = 10000;
this.MULTI_LINE.Multiline = true;
this.MULTI_LINE.Name = "MULTI_LINE";
this.MULTI_LINE.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
this.MULTI_LINE.Size = new System.Drawing.Size(408, 104);
this.MULTI_LINE.TabIndex = 5;
this.MULTI_LINE.Text = "";
//
// RICH_EDIT
//
this.RICH_EDIT.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));
this.RICH_EDIT.ForeColor = System.Drawing.Color.Red;
this.RICH_EDIT.Location = new System.Drawing.Point(32, 296);
this.RICH_EDIT.Name = "RICH_EDIT";
this.RICH_EDIT.ShowSelectionMargin = true;
this.RICH_EDIT.Size = new System.Drawing.Size(408, 120);
this.RICH_EDIT.TabIndex = 6;
this.RICH_EDIT.Text = "richTextBox1";
this.RICH_EDIT.ZoomFactor = 4.999695F;
//
// label4
//
this.label4.Location = new System.Drawing.Point(32, 272);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(152, 16);
this.label4.TabIndex = 7;
this.label4.Text = "RichEdit Text Box";
//
// TextBox
//
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(464, 453);
this.Controls.AddRange(new System.Windows.Forms.Control[] {
this.label4,
this.RICH_EDIT,
this.MULTI_LINE,
this.label3,
this.label2,
this.PASSWORD_LINE,
this.label1,
this.SINGLE_LINE});
this.Name = "TextBox";
this.Text = "TextBox Controls";
this.Load += new System.EventHandler(this.TextBox_Load);
this.ResumeLayout(false);
}
#endregion
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.Run(new TextBox());
}
private void TextBox_Load(object sender, System.EventArgs e)
{
RICH_EDIT.LoadFile("c: empRTFDOC.RTF");
}
}
}
Label, TextBox and Button
/*
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;
using System.Data;
namespace ControlMedley
{
/// <summary>
/// Summary description for ControlMedley.
/// </summary>
public class ControlMedley : System.Windows.Forms.Form
{
internal System.Windows.Forms.Label Label1;
internal System.Windows.Forms.TextBox TextBox1;
internal System.Windows.Forms.Button Button1;
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.Container components = null;
public ControlMedley()
{
//
// 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.TextBox1 = new System.Windows.Forms.TextBox();
this.Button1 = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// Label1
//
this.Label1.FlatStyle = System.Windows.Forms.FlatStyle.System;
this.Label1.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));
this.Label1.Location = new System.Drawing.Point(20, 92);
this.Label1.Name = "Label1";
this.Label1.Size = new System.Drawing.Size(112, 24);
this.Label1.TabIndex = 5;
this.Label1.Text = "Label1";
this.Label1.Click += new System.EventHandler(this.ctrlClick);
//
// TextBox1
//
this.TextBox1.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));
this.TextBox1.Location = new System.Drawing.Point(20, 56);
this.TextBox1.Name = "TextBox1";
this.TextBox1.Size = new System.Drawing.Size(156, 21);
this.TextBox1.TabIndex = 4;
this.TextBox1.Text = "TextBox1";
this.TextBox1.Click += new System.EventHandler(this.ctrlClick);
//
// Button1
//
this.Button1.FlatStyle = System.Windows.Forms.FlatStyle.System;
this.Button1.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));
this.Button1.Location = new System.Drawing.Point(20, 16);
this.Button1.Name = "Button1";
this.Button1.Size = new System.Drawing.Size(96, 28);
this.Button1.TabIndex = 3;
this.Button1.Text = "Button1";
this.Button1.Click += new System.EventHandler(this.ctrlClick);
//
// ControlMedley
//
this.AutoScaleBaseSize = new System.Drawing.Size(5, 14);
this.ClientSize = new System.Drawing.Size(316, 214);
this.Controls.AddRange(new System.Windows.Forms.Control[] {
this.Label1,
this.TextBox1,
this.Button1});
this.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));
this.Name = "ControlMedley";
this.Text = "Control Medley";
this.ResumeLayout(false);
}
#endregion
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.Run(new ControlMedley());
}
private void ctrlClick(System.Object sender, EventArgs e)
{
Control ctrl = (Control)sender;
MessageBox.Show("You clicked: " + ctrl.Name);
}
}
}
TextBox and ListBox
using System;
using System.Drawing;
using System.Windows.Forms;
public class WindowSample : Form
{
private TextBox data;
private ListBox results;
public WindowSample()
{
Text = "Sample Window Program";
Size = new Size(400, 380);
Label label1 = new Label();
label1.Parent = this;
label1.Text = "Enter text string:";
label1.AutoSize = true;
label1.Location = new Point(10, 10);
data = new TextBox();
data.Parent = this;
data.Size = new Size(200, 2 * Font.Height);
data.Location = new Point(10, 35);
results = new ListBox();
results.Parent = this;
results.Location = new Point(10, 65);
results.Size = new Size(350, 20 * Font.Height);
Button checkit = new Button();
checkit.Parent = this;
checkit.Text = "test";
checkit.Location = new Point(235,32);
checkit.Size = new Size(7 * Font.Height, 2 * Font.Height);
checkit.Click += new EventHandler(ButtonOnClick);
}
void ButtonOnClick(object obj, EventArgs ea)
{
results.Items.Add(data.Text);
data.Clear();
}
public static void Main()
{
Application.Run(new WindowSample());
}
}
TextBox and button on form
/*
C# Programming Tips & Techniques
by Charles Wright, Kris Jamsa
Publisher: Osborne/McGraw-Hill (December 28, 2001)
ISBN: 0072193794
*/
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
namespace Form
{
/// <summary>
/// Summary description for ButtonTextForm.
/// </summary>
public class ButtonTextForm : System.Windows.Forms.Form
{
private System.Windows.Forms.Button button1;
private System.Windows.Forms.Button button2;
private System.Windows.Forms.TextBox textBox1;
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.Container components = null;
public ButtonTextForm()
{
//
// Required for Windows Form Designer support
//
InitializeComponent();
//
// TODO: Add any constructor code after InitializeComponent call
//
}
#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.button1 = new System.Windows.Forms.Button();
this.button2 = new System.Windows.Forms.Button();
this.textBox1 = new System.Windows.Forms.TextBox();
this.SuspendLayout();
//
// button1
//
this.button1.Location = new System.Drawing.Point(61, 159);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(85, 37);
this.button1.TabIndex = 1;
this.button1.Text = "button1";
//
// button2
//
this.button2.Location = new System.Drawing.Point(196, 159);
this.button2.Name = "button2";
this.button2.Size = new System.Drawing.Size(95, 37);
this.button2.TabIndex = 2;
this.button2.Text = "button2";
//
// textBox1
//
this.textBox1.Location = new System.Drawing.Point(41, 37);
this.textBox1.Name = "textBox1";
this.textBox1.Size = new System.Drawing.Size(262, 22);
this.textBox1.TabIndex = 0;
this.textBox1.Text = "textBox1";
//
// ButtonTextForm
//
this.AutoScaleBaseSize = new System.Drawing.Size(6, 15);
this.ClientSize = new System.Drawing.Size(340, 280);
this.Controls.AddRange(new System.Windows.Forms.Control[] {
this.button1,
this.button2,
this.textBox1});
this.Name = "ButtonTextForm";
this.Text = "ButtonTextForm";
this.Load += new System.EventHandler(this.ButtonTextForm_Load);
this.ResumeLayout(false);
}
#endregion
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.Run(new ButtonTextForm());
}
private void ButtonTextForm_Load(object sender, System.EventArgs e)
{
}
private void button2_Click(object sender, System.EventArgs e)
{
Application.Exit ();
}
private void button1_Click(object sender, System.EventArgs e)
{
MessageBox.Show (this,
textBox1.Text, "Text Box",
MessageBoxButtons.OKCancel,
MessageBoxIcon.Exclamation);
}
}
}
User Events
/*
Professional Windows GUI Programming Using C#
by Jay Glynn, Csaba Torok, Richard Conway, Wahid Choudhury,
Zach Greenvoss, Shripad Kulkarni, Neil Whitlow
Publisher: Peer Information
ISBN: 1861007663
*/
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Diagnostics;
using System.Runtime.CompilerServices;
namespace UserEvents
{
/// <summary>
/// Summary description for Form1.
/// </summary>
public class UserEvents : System.Windows.Forms.Form
{
private System.Windows.Forms.TextBox txtUsername;
private System.Windows.Forms.Button btnLogin;
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.Container components = null;
LoginAuditInserter la = new LoginAuditInserter();
public UserEvents()
{
//
// Required for Windows Form Designer support
//
InitializeComponent();
//
// TODO: Add any constructor code after InitializeComponent call
//
la.LoginAudit += new LoginAuditInserter.LoginAuditHandler(AddAuditEntry);
la.LoginAudit += new LoginAuditInserter.LoginAuditHandler(AddEventLogEntry);
}
static public void AddAuditEntry(string username)
{
System.Diagnostics.Debug.WriteLine(username);
}
static public void AddEventLogEntry(string username)
{
string applicationName = "Login Audit";
EventLog ev = new EventLog("Application");
ev.Source = applicationName;
ev.WriteEntry("Login Attempted.", EventLogEntryType.Information);
}
/// <summary>
/// Clean up any resources being used.
/// </summary>
protected override void Dispose( bool disposing )
{
if( disposing )
{
if (components != null)
{
components.Dispose();
}
}
la.LoginAudit -= new LoginAuditInserter.LoginAuditHandler(AddAuditEntry);
la.LoginAudit -= new LoginAuditInserter.LoginAuditHandler(AddEventLogEntry);
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.txtUsername = new System.Windows.Forms.TextBox();
this.btnLogin = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// txtUsername
//
this.txtUsername.Location = new System.Drawing.Point(8, 24);
this.txtUsername.Name = "txtUsername";
this.txtUsername.Size = new System.Drawing.Size(152, 20);
this.txtUsername.TabIndex = 0;
this.txtUsername.Text = "";
//
// btnLogin
//
this.btnLogin.Location = new System.Drawing.Point(184, 24);
this.btnLogin.Name = "btnLogin";
this.btnLogin.Size = new System.Drawing.Size(96, 23);
this.btnLogin.TabIndex = 1;
this.btnLogin.Text = "Login";
this.btnLogin.Click += new System.EventHandler(this.btnLogin_Click);
//
// UserEvents
//
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(292, 78);
this.Controls.AddRange(new System.Windows.Forms.Control[] {
this.btnLogin,
this.txtUsername});
this.MaximizeBox = false;
this.Name = "UserEvents";
this.Text = "Login";
this.ResumeLayout(false);
}
#endregion
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.Run(new UserEvents());
}
private void btnLogin_Click(object sender, System.EventArgs e)
{
la.AddAuditEntry(txtUsername.Text);
}
}
public class LoginAuditInserter
{
public delegate void LoginAuditHandler(string username);
private AccessorContainer container = new AccessorContainer();
private static int key = 0;
public event LoginAuditHandler LoginAudit
{
[MethodImpl(MethodImplOptions.Synchronized)]
add
{
container.Add(key, value);
}
[MethodImpl(MethodImplOptions.Synchronized)]
remove
{
container.Remove(key, value);
}
}
protected void OnLoginAudit(string username)
{
LoginAuditHandler loginAudit = (LoginAuditHandler)container.Get(key);
if(username!=null)
{
loginAudit(username);
}
}
public void AddAuditEntry(string username)
{
OnLoginAudit(username);
}
}
public class AccessorContainer
{
private ArrayList arrayAccessor = new ArrayList();
public Delegate Get(int key)
{
return ((Delegate)arrayAccessor[key]);
}
public void Add(int key, Delegate ptr)
{
try
{
arrayAccessor[key] = Delegate.Combine((Delegate)arrayAccessor[key], ptr);
}
catch(ArgumentOutOfRangeException)
{
arrayAccessor.Add(ptr);
}
}
public void Remove(int key, Delegate ptr)
{
arrayAccessor.Remove(Delegate.Remove((Delegate)arrayAccessor[key], ptr));
}
}
}