All pastes #352348 Raw Edit

Untitled

public text v1 · immutable
·published 2007-02-12 19:32 UTC
rendered paste body
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;

/// <summary>
/// Bjørn-Rune's løsningsforslag, laboppgave 3 og 4 GUI programmering
/// Fine hacks her inne :]
/// </summary>
public class Lengthconv : System.Windows.Forms.Form
{
	private System.Windows.Forms.TextBox FraVerdi;
	private System.Windows.Forms.TextBox TilVerdi;
	private System.Windows.Forms.Button Konverter;
    private System.Windows.Forms.Label labelFra;
    private System.Windows.Forms.Label labelTil;
    private IContainer components;
	private System.Windows.Forms.MainMenu mainMenu1;
	private System.Windows.Forms.MenuItem yardMenu;
	private System.Windows.Forms.MenuItem meterMenu;
	private System.Windows.Forms.MenuItem fileMenu;
	private System.Windows.Forms.MenuItem exitMenu;
	private System.Windows.Forms.MenuItem optionsMenu;
    private TableLayoutPanel tableLayoutPanel1;
    private TextBox FraVerdi2;
    private MaskedTextBox maskedTextBox1;
    private ToolTip toolTip1;
    private StatusStrip statusStrip1;
    private ToolStripStatusLabel statusLinjeLabel;
	private System.Windows.Forms.ErrorProvider errorProvider1;

	public Lengthconv()
	{
		//
		// Required for Windows Form Designer support
		//
		InitializeComponent();
		this.errorProvider1 = new System.Windows.Forms.ErrorProvider();
		this.yardMenu.Checked = Y_to_M;
		this.FraVerdi.Validating += new System.ComponentModel.CancelEventHandler(this.FraVerdi_Validating);
		this.FraVerdi.Validated += new System.EventHandler(this.FraVerdi_Validated);
		this.meterMenu.Checked = M_to_Y;
	    this.errorProvider1.ContainerControl = this;
	    this.Closing += new System.ComponentModel.CancelEventHandler(this.Lengthconv_Closing);
		//
		// 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.components = new System.ComponentModel.Container();
            this.FraVerdi = new System.Windows.Forms.TextBox();
            this.TilVerdi = new System.Windows.Forms.TextBox();
            this.Konverter = new System.Windows.Forms.Button();
            this.labelFra = new System.Windows.Forms.Label();
            this.labelTil = new System.Windows.Forms.Label();
            this.mainMenu1 = new System.Windows.Forms.MainMenu(this.components);
            this.fileMenu = new System.Windows.Forms.MenuItem();
            this.exitMenu = new System.Windows.Forms.MenuItem();
            this.optionsMenu = new System.Windows.Forms.MenuItem();
            this.yardMenu = new System.Windows.Forms.MenuItem();
            this.meterMenu = new System.Windows.Forms.MenuItem();
            this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
            this.FraVerdi2 = new System.Windows.Forms.TextBox();
            this.maskedTextBox1 = new System.Windows.Forms.MaskedTextBox();
            this.toolTip1 = new System.Windows.Forms.ToolTip(this.components);
            this.statusStrip1 = new System.Windows.Forms.StatusStrip();
            this.statusLinjeLabel = new System.Windows.Forms.ToolStripStatusLabel();
            this.tableLayoutPanel1.SuspendLayout();
            this.statusStrip1.SuspendLayout();
            this.SuspendLayout();
            // 
            // FraVerdi
            // 
            this.FraVerdi.Location = new System.Drawing.Point(77, 3);
            this.FraVerdi.Name = "FraVerdi";
            this.FraVerdi.Size = new System.Drawing.Size(100, 20);
            this.FraVerdi.TabIndex = 1;
            this.FraVerdi.Text = "0";
            // 
            // TilVerdi
            // 
            this.TilVerdi.Location = new System.Drawing.Point(77, 119);
            this.TilVerdi.Name = "TilVerdi";
            this.TilVerdi.Size = new System.Drawing.Size(100, 20);
            this.TilVerdi.TabIndex = 9;
            this.TilVerdi.TabStop = false;
            this.TilVerdi.Text = "0";
            // 
            // Konverter
            // 
            this.Konverter.Location = new System.Drawing.Point(77, 152);
            this.Konverter.Name = "Konverter";
            this.Konverter.Size = new System.Drawing.Size(75, 23);
            this.Konverter.TabIndex = 4;
            this.Konverter.Text = "Konverter!";
            this.Konverter.Click += new System.EventHandler(this.Konverter_Click);
            // 
            // labelFra
            // 
            this.labelFra.Location = new System.Drawing.Point(3, 0);
            this.labelFra.Name = "labelFra";
            this.labelFra.Size = new System.Drawing.Size(56, 20);
            this.labelFra.TabIndex = 4;
            this.labelFra.Text = "Yards";
            // 
            // labelTil
            // 
            this.labelTil.Location = new System.Drawing.Point(3, 116);
            this.labelTil.Name = "labelTil";
            this.labelTil.Size = new System.Drawing.Size(56, 20);
            this.labelTil.TabIndex = 5;
            this.labelTil.Text = "Meter";
            // 
            // mainMenu1
            // 
            this.mainMenu1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
            this.fileMenu,
            this.optionsMenu});
            // 
            // fileMenu
            // 
            this.fileMenu.Index = 0;
            this.fileMenu.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
            this.exitMenu});
            this.fileMenu.Text = "File";
            // 
            // exitMenu
            // 
            this.exitMenu.Index = 0;
            this.exitMenu.Text = "Exit";
            this.exitMenu.Click += new System.EventHandler(this.exitMenu_Click);
            // 
            // optionsMenu
            // 
            this.optionsMenu.Index = 1;
            this.optionsMenu.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
            this.yardMenu,
            this.meterMenu});
            this.optionsMenu.Text = "Options";
            // 
            // yardMenu
            // 
            this.yardMenu.Index = 0;
            this.yardMenu.Text = "Yards";
            this.yardMenu.Click += new System.EventHandler(this.yardMenu_Click);
            // 
            // meterMenu
            // 
            this.meterMenu.Index = 1;
            this.meterMenu.Text = "Meters";
            this.meterMenu.Click += new System.EventHandler(this.meterMenu_Click);
            // 
            // tableLayoutPanel1
            // 
            this.tableLayoutPanel1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right)));
            this.tableLayoutPanel1.AutoSize = true;
            this.tableLayoutPanel1.ColumnCount = 2;
            this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 32.05128F));
            this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 67.94872F));
            this.tableLayoutPanel1.Controls.Add(this.Konverter, 1, 4);
            this.tableLayoutPanel1.Controls.Add(this.FraVerdi, 1, 0);
            this.tableLayoutPanel1.Controls.Add(this.labelFra, 0, 0);
            this.tableLayoutPanel1.Controls.Add(this.FraVerdi2, 1, 1);
            this.tableLayoutPanel1.Controls.Add(this.TilVerdi, 1, 3);
            this.tableLayoutPanel1.Controls.Add(this.labelTil, 0, 3);
            this.tableLayoutPanel1.Controls.Add(this.maskedTextBox1, 1, 2);
            this.tableLayoutPanel1.Location = new System.Drawing.Point(24, 12);
            this.tableLayoutPanel1.Name = "tableLayoutPanel1";
            this.tableLayoutPanel1.RowCount = 5;
            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 32F));
            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 51F));
            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
            this.tableLayoutPanel1.Size = new System.Drawing.Size(234, 182);
            this.tableLayoutPanel1.TabIndex = 6;
            // 
            // FraVerdi2
            // 
            this.FraVerdi2.AcceptsReturn = true;
            this.FraVerdi2.Location = new System.Drawing.Point(77, 36);
            this.FraVerdi2.Name = "FraVerdi2";
            this.FraVerdi2.Size = new System.Drawing.Size(100, 20);
            this.FraVerdi2.TabIndex = 2;
            this.FraVerdi2.Text = "0";
            this.FraVerdi2.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.FraVerdi2_KeyPress_1);
            this.FraVerdi2.KeyDown += new System.Windows.Forms.KeyEventHandler(this.FraVerdi2_KeyDown);
            // 
            // maskedTextBox1
            // 
            this.maskedTextBox1.Location = new System.Drawing.Point(77, 68);
            this.maskedTextBox1.Mask = "#99,999.99";
            this.maskedTextBox1.Name = "maskedTextBox1";
            this.maskedTextBox1.Size = new System.Drawing.Size(100, 20);
            this.maskedTextBox1.TabIndex = 3;
            this.maskedTextBox1.Text = "0";
            this.maskedTextBox1.TextMaskFormat = System.Windows.Forms.MaskFormat.ExcludePromptAndLiterals;
            this.maskedTextBox1.MaskInputRejected += new System.Windows.Forms.MaskInputRejectedEventHandler(this.maskedTextBox1_MaskInputRejected);
            this.maskedTextBox1.KeyDown += new System.Windows.Forms.KeyEventHandler(this.maskedTextBox1_KeyDown);
            // 
            // statusStrip1
            // 
            this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
            this.statusLinjeLabel});
            this.statusStrip1.Location = new System.Drawing.Point(0, 234);
            this.statusStrip1.Name = "statusStrip1";
            this.statusStrip1.Size = new System.Drawing.Size(292, 22);
            this.statusStrip1.TabIndex = 7;
            this.statusStrip1.Text = "statusStrip1";
            // 
            // statusLinjeLabel
            // 
            this.statusLinjeLabel.Name = "statusLinjeLabel";
            this.statusLinjeLabel.Size = new System.Drawing.Size(111, 17);
            this.statusLinjeLabel.Text = "FraVerdi boks er aktiv";
            // 
            // Lengthconv
            // 
            this.AcceptButton = this.Konverter;
            this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
            this.ClientSize = new System.Drawing.Size(292, 256);
            this.Controls.Add(this.statusStrip1);
            this.Controls.Add(this.tableLayoutPanel1);
            this.Menu = this.mainMenu1;
            this.Name = "Lengthconv";
            this.Text = "LengthConverter1";
            this.tableLayoutPanel1.ResumeLayout(false);
            this.tableLayoutPanel1.PerformLayout();
            this.statusStrip1.ResumeLayout(false);
            this.statusStrip1.PerformLayout();
            this.ResumeLayout(false);
            this.PerformLayout();

		}
		#endregion

	/// <summary>
	/// The main entry point for the application.
	/// </summary>
	[STAThread]
	static void Main() 
	{
		Application.Run(new Lengthconv());
	}
		
	private bool Y_to_M = true;
	private bool M_to_Y = false;
	private void meterMenu_Click(object sender, System.EventArgs e)
	{
		meterMenu.Checked = true;
		yardMenu.Checked = false;
        labelFra.Text = "Meter";
        labelTil.Text = "Yards";
		Y_to_M = false;
		M_to_Y = true;
	}

	private void yardMenu_Click(object sender, System.EventArgs e)
	{
		meterMenu.Checked = false;
		yardMenu.Checked = true;
        labelFra.Text = "Yards";
        labelTil.Text = "Meter";
		Y_to_M = true;
		M_to_Y = false;
	}
//	private void Yard_to_Meters_CheckedChanged(object sender, System.EventArgs e)
//	{
//		Y_to_M = true;
//		M_to_Y = false;
//	
//	}
//
//	private void Meters_to_Yards_CheckedChanged(object sender, System.EventArgs e)
//	{
//		Y_to_M = false;
//		M_to_Y = true;
//	}

	private void Konverter_Click(object sender, System.EventArgs e)
	{
        double fra = double.Parse(FraVerdi.Text);
        if (FraVerdi.Text == "0")
        {
            if (FraVerdi2.Text != "0")
            {
                fra = double.Parse(FraVerdi2.Text);
            }
            if (maskedTextBox1.Text != "0"){
                fra = double.Parse(maskedTextBox1.Text);
            }
        }
        double til = 0;
		if (Y_to_M == true)
			til = fra * 1.094;
		else
            til = fra * 0.9144;
	    TilVerdi.Text = til.ToString();
 	}
    
    static bool LegalChars(char ch)
    {
        // Tillat kun siffer og backspace
        int keyInt = (int)ch;
        if (Char.IsDigit(ch))
            return false; //Dvs. ok, tegn vises i tekstboks.
        else if (keyInt == (int)Keys.Back)
            return false;
        else
            return true;
    }

	private void FraVerdi_Validating(object sender, System.ComponentModel.CancelEventArgs e)
	{
		String s = FraVerdi.Text;
		bool onlyDigits = true;
		for (int i=0;i<s.Length;i++)
		
		if (Char.IsDigit(s,i) == false)
		{
			onlyDigits = false;
			break;
		}
		
		if (onlyDigits == false)
		{
			e.Cancel = true;
			FraVerdi.Select(0, FraVerdi.Text.Length);
			// Sett ErrorProvider med tekst som skal vises
			this.errorProvider1.SetError(FraVerdi, "Kun siffer er tillatt!");
		}
	}
	
	private void FraVerdi_Validated(object sender, System.EventArgs e)
	{
		// få bort ikonet som ErrorProvider har "slengt opp"
		errorProvider1.SetError(FraVerdi, "");
	}
	
	private void Lengthconv_Closing(object sender,
	System.ComponentModel.CancelEventArgs e)
	{
		// Gjør at vi kan lukke Lengthconv uten at validering
		// har skjedd
		e.Cancel = false;
	}

	private void exitMenu_Click(object sender, System.EventArgs e)
	{
		this.Close();
	}

    private void maskedTextBox1_MaskInputRejected(object sender, MaskInputRejectedEventArgs e)
    {
        if (maskedTextBox1.MaskFull)
        {
            toolTip1.ToolTipTitle = "Fullt!";
            toolTip1.Show("Det er ikke plass til mer i denne inputboksen!.", maskedTextBox1, 3000);
        }
        else if (e.Position == maskedTextBox1.Mask.Length)
        {
            toolTip1.ToolTipTitle = "Siste tegn...";
            toolTip1.Show("Du kan ikke legge på mere data i dette feltet!", maskedTextBox1, 3000);
        }
        else
        {
            toolTip1.ToolTipTitle = "Feil input!";
            toolTip1.Show("Du kan kun bruke tegnene 0-9 i denne boksen!", maskedTextBox1, 3000);
        }
    }

    private void maskedTextBox1_KeyDown(object sender, KeyEventArgs e)
    {
        // Tooltip vises i 3 sekunder, fjern dersom bruker skriver noe:
        toolTip1.Hide(maskedTextBox1);
        if(maskedTextBox1.Text == "0")
        {
            maskedTextBox1.Select(0, maskedTextBox1.Text.Length);
        }
        FraVerdi.Text = "0";
        FraVerdi2.Text = "0";
        statusLinjeLabel.Text = "Maskert tekstbox er aktiv.";
    }

    private void FraVerdi2_KeyDown(object sender, KeyEventArgs e)
    {
        FraVerdi.Text = "0";
        maskedTextBox1.Text = "0";
        statusLinjeLabel.Text = "FraVerdi2 textbox er aktiv.";
    }

    private void FraVerdi2_KeyPress_1(object sender, KeyPressEventArgs e)
    {
        e.Handled = LegalChars(e.KeyChar);
    }
		
}