Home | Course Index | << Prev. | Next >> | PDF Version of this Page |
Course API Comparison
|
For an introduction into the Windows Forms API see: Wikipedia.
Guidance for Visual C# 2010 Express Edition:
1) Main Menu after start of VS 2010: Tools → Options → check lower left checkbox: Show all Settings → Projects and Solutions → Visual Studio projects location: → C:\temp
2) Main Menu after start of VS 2010: File → New Project... → Visual Studio installed templates: Windows Forms Application
Name: compareWinForm → OK
Form1.cs[Design] appears.
3) Two superfluous files must be deleted: Form1.Designer.cs and Program.cs.
You reach these files via the Solution Explorer - compareWinForm-window: Click the plus-sign in front of branch compareWinForm and the plus-sign in front of branch Form1.cs.
Right-click the branch Program.cs. A context menu opens. Click Delete. A message box appears: 'Program.cs' will be deleted permanently. Quit with OK.
Right-click the branch Form1.Designer.cs and delete this file too.
4) Right-click the gray window Form1. A small context menu opens. Click View Code.
You see now the preprogrammed code of Form1.cs. Erase this code completely.
Write the following lines into the empty window of Form1.cs:
using System; using System.Drawing; using System.Windows.Forms; public class Form1 : Form { [STAThread] static void Main() { Application.Run( new Form1() ); } Button button1 = new Button(); Button button2 = new Button(); Label label = new Label(); Pen blackPen = new Pen( Color.Black, 2 ); public Form1() { BackColor = Color.White; Text = "Windows Forms Program in C#"; Controls.Add( button1 ); Controls.Add( button2 ); Controls.Add( label ); button1.Text = " Talk! "; button1.BackColor = Color.Gray; button2.Text = " Clear "; button2.BackColor = Color.Gray; button1.Click += new EventHandler( button1Click ); button2.Click += new EventHandler( button2Click ); label.BackColor = Color.LightGray; label.TextAlign = ContentAlignment.MiddleCenter; ResizeRedraw = true; Width = 600; Height = 80; } protected override void OnPaint( PaintEventArgs e ) { Rectangle cr = ClientRectangle; Font font = new Font( "Arial", Math.Max(1f, cr.Width/40f) ); button1.Font = button2.Font = label.Font = font; Graphics g = CreateGraphics(); SizeF buttonTextSize = g.MeasureString( button2.Text, font ); button1.Left = 4; button1.Width = Convert.ToInt32( buttonTextSize.Width * 1.2f ); button1.Height = Convert.ToInt32( buttonTextSize.Height + 4f ); button1.Top = Convert.ToInt32( (cr.Height-button1.Height)/2f ); button2.Left = cr.Width - button1.Width - 4; button2.Width = button1.Width; button2.Height = button1.Height; button2.Top = button1.Top; label.Left = button1.Left + button1.Width + 2; label.Width = cr.Width - button1.Width - button2.Width - 12; label.Height = button1.Height; label.Top = button1.Top; Rectangle border = new Rectangle( 1, button1.Top-3, cr.Width-2, button1.Height+6 ); g.Clear( BackColor ); g.DrawRectangle( blackPen, border ); } protected void button1Click( object sender, EventArgs e ) { label.Text = "Windows Forms Program in C#. Resize!"; } protected void button2Click( object sender, EventArgs e ) { label.Text = ""; } }
Click Debug → Start Without Debugging Ctrl F5.
Click the Talk!-button and resize the window.
Another sample for a resizable WindowsForms application can be found in
top of page: |