Advertisement
Guest User

Untitled

a guest
Oct 21st, 2014
174
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 15.23 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using System.Windows.Forms;
  10.  
  11. namespace WindowsFormsApplication2
  12. {
  13.     public partial class Form1 : Form
  14.     {
  15.         public Form1()
  16.         {
  17.             //Avaktiverar samtliga knappar vid uppstart av programmet. Aktiverar tooltips och genvägar. Gör "redigeringsläget" osynligt.
  18.  
  19.             InitializeComponent();
  20.             buttonAdd.Enabled = false;
  21.             buttonCopy.Enabled = false;
  22.             buttonEdit.Enabled = false;
  23.             buttonDelete.Enabled = false;
  24.             buttonClear.Enabled = false;
  25.             buttonClean.Enabled = false;
  26.             buttonUp.Enabled = false;
  27.             buttonDown.Enabled = false;
  28.             buttonInsert.Enabled = false;
  29.             buttonSort.Enabled = false;
  30.             buttonConfirm.Visible = false;
  31.             buttonCancel.Visible = false;
  32.             itemToolTipControl.Active = true;
  33.             itemCheckboxShortcuts.Checked = true;
  34.             itemCheckboxTooltip.Checked = true;
  35.         }
  36.  
  37.  
  38.         private bool editModeIsOn = false;
  39.  
  40.         private void Form1_Load(object sender, EventArgs e)
  41.         {
  42.  
  43.         }
  44.  
  45.  
  46.         //Lägger till objekt.
  47.         private void buttonAdd_Click(object sender, EventArgs e)
  48.         {
  49.             if (itemTextBox.Text == "välfärd") //Kontrollerar om textboxen innehåller ordet "välfärd"
  50.                 nationalAnthem(); //och spelar då de två första takterna ur Du Gamla, Du Fria.
  51.  
  52.             itemListBox.Items.Add(itemTextBox.Text); //Skapar ett objekt i listboxen(fr.o.m. nu listan) innehållande en sträng av tecknena i textrutan
  53.             itemTextBox.Text = String.Empty; //Tömmer textrutan på tecken
  54.  
  55.             //Aktiverar knapparna för att rensa, tömma och sortera objekten i listan då det nu finns minst ett objekt i listan
  56.             buttonClean.Enabled = true;
  57.             buttonClear.Enabled = true;
  58.             buttonSort.Enabled = true;
  59.         }
  60.  
  61.  
  62.         //Lägger in objekt.
  63.         private void buttonInsert_Click(object sender, EventArgs e)
  64.         {
  65.             if (itemTextBox.Text == "välfärd")
  66.                 nationalAnthem();
  67.  
  68.             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.
  69.             itemTextBox.Text = String.Empty;
  70.  
  71.             buttonClean.Enabled = true;
  72.             buttonClear.Enabled = true;
  73.             buttonSort.Enabled = true;
  74.         }
  75.  
  76.  
  77.         //Lägger till eller ändrar när returtangenten trycks ned med textrutan aktiv.
  78.         private void itemTextBox_KeyDown(object sender, KeyEventArgs e)
  79.         {
  80.             if (itemCheckboxShortcuts.Checked == true) //Kontrollerar att genvägar är aktiverade med kryssrutan i programmet.
  81.             {
  82.                 if (e.KeyCode == Keys.Return) //Kontrollerar att den nedtryckta tangenten är Retur.
  83.                 {
  84.                     if (editModeIsOn == false) //Kontrollerar om programmet befinner sig i redigeringsläge eller ej.
  85.                     {
  86.                         if (itemTextBox.Text == "") //Kontrollerar att textrutan innehåller tecken.
  87.                             return; //Avbryter om så inte är fallet.
  88.                         else
  89.                         {
  90.                             buttonAdd_Click(sender, e); //Kör add-funktionen som ovan.
  91.                         }
  92.                     }
  93.                     else //Om programmet befinner sig i redigeringsläget däremot
  94.                     {
  95.                         buttonConfirm_Click(sender, e); //så körs funktionen för bekräftelse av redigeringen(se nedan).
  96.                     }
  97.                 }
  98.             }
  99.         }
  100.  
  101.  
  102.         //Kopierar objekt.
  103.         private void buttonCopy_Click(object sender, EventArgs e)
  104.         {
  105.             itemListBox.Items.Add(itemListBox.SelectedItem); //Skapar ett nytt objekt identiskt med det markerade objektet och lägger till det i listan,
  106.         }
  107.  
  108.         private void buttonEdit_Click(object sender, EventArgs e) //Aktiverar redigeringsläget
  109.         {
  110.             itemTextBox.Text = itemListBox.SelectedItem.ToString(); //Kopierar strängen från det markerade objektet och lägger det i textrutan.
  111.             editModeIsOn = true; //Aktiverar redigeringsläget för att returtangenten skall kunna brukas.
  112.  
  113.             //Visar knapparna som tillhör redigeringsläget och döljer övriga.
  114.             buttonAdd.Visible = false;
  115.             buttonCopy.Visible = false;
  116.             buttonEdit.Visible = false;
  117.             buttonDelete.Visible = false;
  118.             buttonClear.Visible = false;
  119.             buttonInsert.Visible = false;
  120.             buttonSort.Visible = false;
  121.             buttonClean.Visible = false;
  122.             buttonUp.Visible = false;
  123.             buttonDown.Visible = false;
  124.             buttonConfirm.Visible = true;
  125.             buttonCancel.Visible = true;
  126.         }
  127.  
  128.  
  129.         //Bekräftar den genomförda redigeringen.
  130.         private void buttonConfirm_Click(object sender, EventArgs e)
  131.         {
  132.             if (itemListBox.SelectedItems.Count == 0) //Kontrollerar så att ett objekt är markerat vid bekräftelsen för att programmet inte skall krascha.
  133.                 return;
  134.             else
  135.             {
  136.                 itemListBox.Items[itemListBox.SelectedIndex] = itemTextBox.Text; //Byter ut objektet på det markerade indexet mot ett objekt innehållande strängen i textrutan.
  137.                 itemTextBox.Text = String.Empty;
  138.                 editModeIsOn = false; //Avaktiverar redigeringsläget.
  139.                 itemListBox.ClearSelected(); //Avmarkerar objektet.
  140.             }
  141.  
  142.             //Döljer redigeringsknapparna och visar de tidigare dolda.
  143.             buttonAdd.Visible = true;
  144.             buttonCopy.Visible = true;
  145.             buttonEdit.Visible = true;
  146.             buttonDelete.Visible = true;
  147.             buttonClear.Visible = true;
  148.             buttonInsert.Visible = true;
  149.             buttonSort.Visible = true;
  150.             buttonClean.Visible = true;
  151.             buttonUp.Visible = true;
  152.             buttonDown.Visible = true;
  153.             buttonConfirm.Visible = false;
  154.             buttonCancel.Visible = false;
  155.         }
  156.  
  157.  
  158.         //Avbryter redigeringsläget utan att redigera.
  159.         private void buttonCancel_Click(object sender, EventArgs e)
  160.         {
  161.             itemTextBox.Text = String.Empty;
  162.             editModeIsOn = false;
  163.             itemListBox.ClearSelected();
  164.  
  165.             buttonAdd.Visible = true;
  166.             buttonCopy.Visible = true;
  167.             buttonEdit.Visible = true;
  168.             buttonDelete.Visible = true;
  169.             buttonClear.Visible = true;
  170.             buttonInsert.Visible = true;
  171.             buttonSort.Visible = true;
  172.             buttonClean.Visible = true;
  173.             buttonUp.Visible = true;
  174.             buttonDown.Visible = true;
  175.             buttonConfirm.Visible = false;
  176.             buttonCancel.Visible = false;
  177.         }
  178.  
  179.  
  180.         //Raderar de markerade objekten.
  181.         private void buttonDelete_Click(object sender, EventArgs e)
  182.         {
  183.  
  184.             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.
  185.                 itemListBox.Items.RemoveAt(itemListBox.SelectedIndices[i]);  //Tar bort objektet som befinner sig på det aktiva indexet.
  186.  
  187.             //Om det sista objektet tas bort så avaktiveras knapparna för clear, sort och clean då det inte finns några objekt kvar.
  188.             if (itemListBox.Items.Count == 0)
  189.             {
  190.                 buttonClear.Enabled = false;
  191.                 buttonSort.Enabled = false;
  192.                 buttonClean.Enabled = false;
  193.             }
  194.         }
  195.  
  196.  
  197.         //Tangentbordsgenvägar för att radera, aktivera redigeringsläge samt kopiera med tangenterna Del, E och C.
  198.         private void itemListBox_KeyDown(object sender, KeyEventArgs e)
  199.         {
  200.             if (itemCheckboxShortcuts.Checked == true)
  201.             {
  202.                 if (e.KeyCode == Keys.Delete)
  203.                 {
  204.                     buttonDelete_Click(sender, e);
  205.                 }
  206.                 else if (e.KeyCode == Keys.E)
  207.                 {
  208.                     buttonEdit_Click(sender, e);
  209.                 }
  210.                 else if (e.KeyCode == Keys.C)
  211.                     buttonCopy_Click(sender, e);
  212.             }
  213.         }
  214.  
  215.  
  216.         //Sorterar objekten i listan i numerisk därefter alfabetisk ordning.
  217.         private void buttonSort_Click(object sender, EventArgs e)
  218.         {
  219.             itemListBox.Sorted = true;  //Sorterar samtliga objekt i listan.
  220.             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.
  221.         }
  222.  
  223.  
  224.         //Letar upp dubbletter av objekt och raderar dessa.
  225.         private void buttonClean_Click(object sender, EventArgs e)
  226.         {
  227.  
  228.             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.
  229.             {
  230.                 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
  231.                     itemListBox.Items.RemoveAt(i); //och tar i sådana fall bort det objektet.
  232.             }
  233.         }
  234.  
  235.  
  236.         //Raderar samtliga objekt.
  237.         private void buttonClear_Click(object sender, EventArgs e)
  238.         {
  239.             itemListBox.Items.Clear(); //Tar bort alla objekt i listan.
  240.             itemTextBox.Text = String.Empty;
  241.  
  242.             //Stänger av alla knappar så att programmet i stort sett börjar om.
  243.             buttonAdd.Enabled = false;
  244.             buttonCopy.Enabled = false;
  245.             buttonEdit.Enabled = false;
  246.             buttonDelete.Enabled = false;
  247.             buttonClear.Enabled = false;
  248.             buttonSort.Enabled = false;
  249.             buttonClean.Enabled = false;
  250.             buttonUp.Enabled = false;
  251.             buttonDown.Enabled = false;
  252.         }
  253.  
  254.  
  255.         //Flyttar det markerade objektet uppåt.
  256.         private void buttonUp_Click(object sender, EventArgs e)
  257.         {
  258.             MoveItem(-1);
  259.         }
  260.  
  261.  
  262.         //Flyttar det markerade objektet nedåt.
  263.         private void buttonDown_Click(object sender, EventArgs e)
  264.         {
  265.             MoveItem(1);
  266.         }
  267.  
  268.         //Flyttar objektet upp eller ned i listan beroende på vilken knapp som tryckts på.
  269.         public void MoveItem(int direction)
  270.         {
  271.             int newIndex = itemListBox.SelectedIndex + direction; //Beräknar objektets nya index
  272.  
  273.             if (newIndex < 0 || newIndex >= itemListBox.Items.Count) //Kontrollerar att det nya indexet inte är utanför listans gränser.
  274.                 return; //Indexet är utanför gränserna, alltså finns det inget att göra.
  275.  
  276.             object selected = itemListBox.SelectedItem; //För att programmet skall komma ihåg hur objektet ser ut.
  277.  
  278.             itemListBox.Items.Remove(selected); //Tar bort objektet.
  279.  
  280.             itemListBox.Items.Insert(newIndex, selected); //Återskapar det i den nya positionen.
  281.  
  282.             itemListBox.SetSelected(newIndex, true); //Markerar objektet för att kunna fortsätta flytta runt det utan att behöva återmarkera det manuellt.
  283.         }
  284.  
  285.  
  286.         //Genomförs när texten i textrutan ändras.
  287.         private void itemTextBox_TextChanged(object sender, EventArgs e)
  288.         {
  289.             if (itemTextBox.Text == "") //Om textrutan är tom så är knapparna för add, insert och apply avaktiverade.
  290.             {
  291.                 buttonAdd.Enabled = false;
  292.                 buttonInsert.Enabled = false;
  293.                 buttonConfirm.Enabled = false;
  294.             }
  295.             else //Om det däremot finns text i textrutan är de aktiverade.
  296.             {
  297.                 buttonAdd.Enabled = true;
  298.                 buttonInsert.Enabled = true;
  299.                 buttonConfirm.Enabled = true;
  300.             }
  301.  
  302.         }
  303.  
  304.  
  305.         //Avmarkerar alla markerade objekt när textrutan görs aktiv såvida inte programmet befinner sig i redigeringsläge.
  306.         private void itemTextBox_MouseClick(object sender, MouseEventArgs e)
  307.         {
  308.             if (editModeIsOn == false)
  309.                 itemListBox.ClearSelected();
  310.         }
  311.  
  312.  
  313.         //Genomförs när indexet på det markerade objektet förändras.
  314.         private void itemListBox_SelectedIndexChanged(object sender, EventArgs e)
  315.         {
  316.             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.
  317.  
  318.             if (itemListBox.SelectedItems.Count == 0) //Om inget objekt är markerat så stängs knapparna för funktionerna som kräver ett markerat objekt av.
  319.             {
  320.                 buttonCopy.Enabled = false;
  321.                 buttonEdit.Enabled = false;
  322.                 buttonDelete.Enabled = false;
  323.             }
  324.             else
  325.             {
  326.                 buttonCopy.Enabled = true;
  327.                 buttonEdit.Enabled = true;
  328.                 buttonDelete.Enabled = true;
  329.             }
  330.  
  331.             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.
  332.                 buttonUp.Enabled = false;
  333.             else
  334.                 buttonUp.Enabled = true;
  335.  
  336.             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.
  337.                 buttonDown.Enabled = false;
  338.             else
  339.                 buttonDown.Enabled = true;
  340.         }
  341.  
  342.  
  343.         //Kontrollerar om kryssrutan för tooltips är ikryssad eller ej och aktiverar respektive deaktiverar tooltipsen.
  344.         private void itemCheckboxTooltip_CheckedChanged(object sender, EventArgs e)
  345.         {
  346.             if (itemCheckboxTooltip.Checked == true)
  347.                 itemToolTipControl.Active = true;
  348.             else
  349.                 itemToolTipControl.Active = false;
  350.         }
  351.  
  352.  
  353. //Spelar Du Gamla, Du Fria med beep-funktionen.
  354.         private void nationalAnthem()
  355.         {
  356.             Console.Beep(600, 250);
  357.             Console.Beep(600, 400);
  358.             Console.Beep(480, 250);
  359.             Console.Beep(480, 250);
  360.             Console.Beep(480, 400);
  361.             Console.Beep(540, 250);
  362.             Console.Beep(600, 250);
  363.             Console.Beep(600, 400);
  364.             Console.Beep(540, 250);
  365.             Console.Beep(480, 250);
  366.             Console.Beep(450, 400);
  367.         }
  368.  
  369.         private void itemCheckboxShortcuts_CheckedChanged(object sender, EventArgs e)
  370.         {
  371.                
  372.         }
  373.     }
  374. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement