Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows.Forms;
- namespace WindowsFormsApplication2
- {
- public partial class Form1 : Form
- {
- public Form1()
- {
- //Avaktiverar samtliga knappar vid uppstart av programmet. Aktiverar tooltips och genvägar. Gör "redigeringsläget" osynligt.
- InitializeComponent();
- buttonAdd.Enabled = false;
- buttonCopy.Enabled = false;
- buttonEdit.Enabled = false;
- buttonDelete.Enabled = false;
- buttonClear.Enabled = false;
- buttonClean.Enabled = false;
- buttonUp.Enabled = false;
- buttonDown.Enabled = false;
- buttonInsert.Enabled = false;
- buttonSort.Enabled = false;
- buttonConfirm.Visible = false;
- buttonCancel.Visible = false;
- itemToolTipControl.Active = true;
- itemCheckboxShortcuts.Checked = true;
- itemCheckboxTooltip.Checked = true;
- }
- private bool editModeIsOn = false;
- private void Form1_Load(object sender, EventArgs e)
- {
- }
- //Lägger till objekt.
- private void buttonAdd_Click(object sender, EventArgs e)
- {
- if (itemTextBox.Text == "välfärd") //Kontrollerar om textboxen innehåller ordet "välfärd"
- nationalAnthem(); //och spelar då de två första takterna ur Du Gamla, Du Fria.
- itemListBox.Items.Add(itemTextBox.Text); //Skapar ett objekt i listboxen(fr.o.m. nu listan) innehållande en sträng av tecknena i textrutan
- itemTextBox.Text = String.Empty; //Tömmer textrutan på tecken
- //Aktiverar knapparna för att rensa, tömma och sortera objekten i listan då det nu finns minst ett objekt i listan
- buttonClean.Enabled = true;
- buttonClear.Enabled = true;
- buttonSort.Enabled = true;
- }
- //Lägger in objekt.
- private void buttonInsert_Click(object sender, EventArgs e)
- {
- if (itemTextBox.Text == "välfärd")
- nationalAnthem();
- itemListBox.Items.Insert(itemListBox.SelectedIndex + 1, itemTextBox.Text); //Skapar ett objekt som ovan men hämtar indexet från det markerade objektet i listan och adderar 1 på värdet av det för att placera det nya objektet efter det markerade.
- itemTextBox.Text = String.Empty;
- buttonClean.Enabled = true;
- buttonClear.Enabled = true;
- buttonSort.Enabled = true;
- }
- //Lägger till eller ändrar när returtangenten trycks ned med textrutan aktiv.
- private void itemTextBox_KeyDown(object sender, KeyEventArgs e)
- {
- if (itemCheckboxShortcuts.Checked == true) //Kontrollerar att genvägar är aktiverade med kryssrutan i programmet.
- {
- if (e.KeyCode == Keys.Return) //Kontrollerar att den nedtryckta tangenten är Retur.
- {
- if (editModeIsOn == false) //Kontrollerar om programmet befinner sig i redigeringsläge eller ej.
- {
- if (itemTextBox.Text == "") //Kontrollerar att textrutan innehåller tecken.
- return; //Avbryter om så inte är fallet.
- else
- {
- buttonAdd_Click(sender, e); //Kör add-funktionen som ovan.
- }
- }
- else //Om programmet befinner sig i redigeringsläget däremot
- {
- buttonConfirm_Click(sender, e); //så körs funktionen för bekräftelse av redigeringen(se nedan).
- }
- }
- }
- }
- //Kopierar objekt.
- private void buttonCopy_Click(object sender, EventArgs e)
- {
- itemListBox.Items.Add(itemListBox.SelectedItem); //Skapar ett nytt objekt identiskt med det markerade objektet och lägger till det i listan,
- }
- private void buttonEdit_Click(object sender, EventArgs e) //Aktiverar redigeringsläget
- {
- itemTextBox.Text = itemListBox.SelectedItem.ToString(); //Kopierar strängen från det markerade objektet och lägger det i textrutan.
- editModeIsOn = true; //Aktiverar redigeringsläget för att returtangenten skall kunna brukas.
- //Visar knapparna som tillhör redigeringsläget och döljer övriga.
- buttonAdd.Visible = false;
- buttonCopy.Visible = false;
- buttonEdit.Visible = false;
- buttonDelete.Visible = false;
- buttonClear.Visible = false;
- buttonInsert.Visible = false;
- buttonSort.Visible = false;
- buttonClean.Visible = false;
- buttonUp.Visible = false;
- buttonDown.Visible = false;
- buttonConfirm.Visible = true;
- buttonCancel.Visible = true;
- }
- //Bekräftar den genomförda redigeringen.
- private void buttonConfirm_Click(object sender, EventArgs e)
- {
- if (itemListBox.SelectedItems.Count == 0) //Kontrollerar så att ett objekt är markerat vid bekräftelsen för att programmet inte skall krascha.
- return;
- else
- {
- itemListBox.Items[itemListBox.SelectedIndex] = itemTextBox.Text; //Byter ut objektet på det markerade indexet mot ett objekt innehållande strängen i textrutan.
- itemTextBox.Text = String.Empty;
- editModeIsOn = false; //Avaktiverar redigeringsläget.
- itemListBox.ClearSelected(); //Avmarkerar objektet.
- }
- //Döljer redigeringsknapparna och visar de tidigare dolda.
- buttonAdd.Visible = true;
- buttonCopy.Visible = true;
- buttonEdit.Visible = true;
- buttonDelete.Visible = true;
- buttonClear.Visible = true;
- buttonInsert.Visible = true;
- buttonSort.Visible = true;
- buttonClean.Visible = true;
- buttonUp.Visible = true;
- buttonDown.Visible = true;
- buttonConfirm.Visible = false;
- buttonCancel.Visible = false;
- }
- //Avbryter redigeringsläget utan att redigera.
- private void buttonCancel_Click(object sender, EventArgs e)
- {
- itemTextBox.Text = String.Empty;
- editModeIsOn = false;
- itemListBox.ClearSelected();
- buttonAdd.Visible = true;
- buttonCopy.Visible = true;
- buttonEdit.Visible = true;
- buttonDelete.Visible = true;
- buttonClear.Visible = true;
- buttonInsert.Visible = true;
- buttonSort.Visible = true;
- buttonClean.Visible = true;
- buttonUp.Visible = true;
- buttonDown.Visible = true;
- buttonConfirm.Visible = false;
- buttonCancel.Visible = false;
- }
- //Raderar de markerade objekten.
- private void buttonDelete_Click(object sender, EventArgs e)
- {
- for (int i = itemListBox.SelectedIndices.Count - 1; i >= 0; i--) //Kontrollerar hur många objekt som är markerade och genomför instruktionen så många gånger.
- itemListBox.Items.RemoveAt(itemListBox.SelectedIndices[i]); //Tar bort objektet som befinner sig på det aktiva indexet.
- //Om det sista objektet tas bort så avaktiveras knapparna för clear, sort och clean då det inte finns några objekt kvar.
- if (itemListBox.Items.Count == 0)
- {
- buttonClear.Enabled = false;
- buttonSort.Enabled = false;
- buttonClean.Enabled = false;
- }
- }
- //Tangentbordsgenvägar för att radera, aktivera redigeringsläge samt kopiera med tangenterna Del, E och C.
- private void itemListBox_KeyDown(object sender, KeyEventArgs e)
- {
- if (itemCheckboxShortcuts.Checked == true)
- {
- if (e.KeyCode == Keys.Delete)
- {
- buttonDelete_Click(sender, e);
- }
- else if (e.KeyCode == Keys.E)
- {
- buttonEdit_Click(sender, e);
- }
- else if (e.KeyCode == Keys.C)
- buttonCopy_Click(sender, e);
- }
- }
- //Sorterar objekten i listan i numerisk därefter alfabetisk ordning.
- private void buttonSort_Click(object sender, EventArgs e)
- {
- itemListBox.Sorted = true; //Sorterar samtliga objekt i listan.
- itemListBox.Sorted = false; //itemListBox.Sorted görs false för att knappen skall kunna brukas mer än en gång. Detta påverkar inte sorteringen då objekten fått nya index.
- }
- //Letar upp dubbletter av objekt och raderar dessa.
- private void buttonClean_Click(object sender, EventArgs e)
- {
- for (int i = itemListBox.Items.Count - 1; i >= 0; i--) //Kontrollerar hur många objekt som finns i listan och genomför intruktionen tills alla objekt gåtts igenom.
- {
- if (itemListBox.Items.IndexOf(itemListBox.Items[i].ToString()) < i) //Kontrollerar om strängen är den samma som i något av de i listan ovanstående objekten
- itemListBox.Items.RemoveAt(i); //och tar i sådana fall bort det objektet.
- }
- }
- //Raderar samtliga objekt.
- private void buttonClear_Click(object sender, EventArgs e)
- {
- itemListBox.Items.Clear(); //Tar bort alla objekt i listan.
- itemTextBox.Text = String.Empty;
- //Stänger av alla knappar så att programmet i stort sett börjar om.
- buttonAdd.Enabled = false;
- buttonCopy.Enabled = false;
- buttonEdit.Enabled = false;
- buttonDelete.Enabled = false;
- buttonClear.Enabled = false;
- buttonSort.Enabled = false;
- buttonClean.Enabled = false;
- buttonUp.Enabled = false;
- buttonDown.Enabled = false;
- }
- //Flyttar det markerade objektet uppåt.
- private void buttonUp_Click(object sender, EventArgs e)
- {
- MoveItem(-1);
- }
- //Flyttar det markerade objektet nedåt.
- private void buttonDown_Click(object sender, EventArgs e)
- {
- MoveItem(1);
- }
- //Flyttar objektet upp eller ned i listan beroende på vilken knapp som tryckts på.
- public void MoveItem(int direction)
- {
- int newIndex = itemListBox.SelectedIndex + direction; //Beräknar objektets nya index
- if (newIndex < 0 || newIndex >= itemListBox.Items.Count) //Kontrollerar att det nya indexet inte är utanför listans gränser.
- return; //Indexet är utanför gränserna, alltså finns det inget att göra.
- object selected = itemListBox.SelectedItem; //För att programmet skall komma ihåg hur objektet ser ut.
- itemListBox.Items.Remove(selected); //Tar bort objektet.
- itemListBox.Items.Insert(newIndex, selected); //Återskapar det i den nya positionen.
- itemListBox.SetSelected(newIndex, true); //Markerar objektet för att kunna fortsätta flytta runt det utan att behöva återmarkera det manuellt.
- }
- //Genomförs när texten i textrutan ändras.
- private void itemTextBox_TextChanged(object sender, EventArgs e)
- {
- if (itemTextBox.Text == "") //Om textrutan är tom så är knapparna för add, insert och apply avaktiverade.
- {
- buttonAdd.Enabled = false;
- buttonInsert.Enabled = false;
- buttonConfirm.Enabled = false;
- }
- else //Om det däremot finns text i textrutan är de aktiverade.
- {
- buttonAdd.Enabled = true;
- buttonInsert.Enabled = true;
- buttonConfirm.Enabled = true;
- }
- }
- //Avmarkerar alla markerade objekt när textrutan görs aktiv såvida inte programmet befinner sig i redigeringsläge.
- private void itemTextBox_MouseClick(object sender, MouseEventArgs e)
- {
- if (editModeIsOn == false)
- itemListBox.ClearSelected();
- }
- //Genomförs när indexet på det markerade objektet förändras.
- private void itemListBox_SelectedIndexChanged(object sender, EventArgs e)
- {
- itemListBox.SelectionMode = SelectionMode.MultiExtended; //Gör det möjligt att markera flera objekt genom att hålla in musknappen och dra eller att bruka modifieringstangenterna CTRL eller SHIFT.
- if (itemListBox.SelectedItems.Count == 0) //Om inget objekt är markerat så stängs knapparna för funktionerna som kräver ett markerat objekt av.
- {
- buttonCopy.Enabled = false;
- buttonEdit.Enabled = false;
- buttonDelete.Enabled = false;
- }
- else
- {
- buttonCopy.Enabled = true;
- buttonEdit.Enabled = true;
- buttonDelete.Enabled = true;
- }
- if (itemListBox.SelectedIndex == 0 || itemListBox.Items.Count == 1 || itemListBox.Items.Count == 0) //Om det markerade objektet befinner sig högst upp, eller är det enda objektet, i listan avaktiveras knappen för att flytta upp objektet.
- buttonUp.Enabled = false;
- else
- buttonUp.Enabled = true;
- if (itemListBox.SelectedIndex == itemListBox.Items.Count -1 || itemListBox.Items.Count == 1 || itemListBox.Items.Count == 0) //Likaså om objektet befinner sig längst ner och knappen för att flytta ned.
- buttonDown.Enabled = false;
- else
- buttonDown.Enabled = true;
- }
- //Kontrollerar om kryssrutan för tooltips är ikryssad eller ej och aktiverar respektive deaktiverar tooltipsen.
- private void itemCheckboxTooltip_CheckedChanged(object sender, EventArgs e)
- {
- if (itemCheckboxTooltip.Checked == true)
- itemToolTipControl.Active = true;
- else
- itemToolTipControl.Active = false;
- }
- //Spelar Du Gamla, Du Fria med beep-funktionen.
- private void nationalAnthem()
- {
- Console.Beep(600, 250);
- Console.Beep(600, 400);
- Console.Beep(480, 250);
- Console.Beep(480, 250);
- Console.Beep(480, 400);
- Console.Beep(540, 250);
- Console.Beep(600, 250);
- Console.Beep(600, 400);
- Console.Beep(540, 250);
- Console.Beep(480, 250);
- Console.Beep(450, 400);
- }
- private void itemCheckboxShortcuts_CheckedChanged(object sender, EventArgs e)
- {
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement