Painikkeita on kolmenlaisia: Button eli tavallinen painike, CheckBox eli ”raksi ruutuun” sekä RadioButton eli ”joko-tai”-valinta.

Button

Button on tavallinen painike.

[list bullet=”circle”]

  • Tärkein tapahtuma on klikkaus
  • Lomakkeelle voi asettaa ominaisuuden AcceptButton, joka määrittelee mitä painiketta painetaan, kun lomake hyväksytään (painetaan enteriä)
  • [/list]

    Luodaan uusi button koodissa

    // luodaan button
    Button btnOk = new Button();
    // annetaan nimi
    btnOk.Name = "btnOk";
    // annetaan teksti
    btnOk.Text = "OK";
    // lisätään tapahtumankäsittelijä klikkaukselle
    btnOk.Click += new EventHandler(btnOk_Click);
    // lisätään button lomakkeelle (johon this viittaa)
    this.Controls.Add(btnOk);
    

    Tapahtumankäsittelijän koodi voisi olla

    void btnOk_Click(object sender, EventArgs e)
    {
    	// button on senderissä
    	// tehdään tyypinmuunnos
    	Button b = (Button)sender;
    	// näytetään buttonin teksti
    	MessageBox.Show(b.Text);
    }
    

    CheckBox

    CheckBox on ”raksi ruutuun”-komponentti

    [list bullet=”circle”]

  • Voi olla kahdessa (raksittu/ei raksittu) tai kolmessa (edellisten lisäksi määrittelemätön) tilassa. Ominaisuuden ThreeState ollessa true, sallitaan kolme tilaa.
  • Tärkeimmät tapahtumat CheckedChanged (raksi tulee/raksi lähtee) ja CheckStateChanged (tila muuttuu). Näistä ensimmäinen ei tapahdu mentäessä määrittelemättömään (eli kolmanteen) tilaan.
  • [/list]

    Luodaan checkbox, joka voi olla kolmessa tilassa

    // luodaan checkbox
    CheckBox cb = new CheckBox();
    // asetetaan teksti
    cb.Text = "Valitaanko?";
    // sallitaan kolme tilaa
    cb.ThreeState = true;
    // lisätään tapahtumankäsittelijä tilan muutokselle
    cb.CheckStateChanged += new EventHandler(cb_CheckStateChanged);
    // lisätään checkbox lomakkeelle (johon this viittaa)
    this.Controls.Add(cb);
    

    Tapahtumankäsittelijän koodi voisi olla

    void cb_CheckStateChanged(object sender, EventArgs e)
    {
    	// checkbox on senderissä
    	// tehdään tyypinmuunnos
    	CheckBox cb = (CheckBox)sender;
    	// jos raksi
    	if (cb.CheckState == CheckState.Checked)
    	{
    		MessageBox.Show("Valittu");
    	}
    	// jos ei raksia
    	else if (cb.CheckState == CheckState.Unchecked)
    	{
    		MessageBox.Show("Ei valittu");
    	}
    	// muutoin
    	else
    	{
    		MessageBox.Show("Määrittelemätön");
    	}
    }
    

    RadioButton

    RadioButton on ”joko-tai”-valintakomponentti

    [list bullet=”circle”]

  • Samassa ryhmässä olevista radiobuttoneista vain yksi voi olla valittuna kerrallaan. Ryhmä tarkoittaa saman komponentin (esim. groupbox) sisällä olevia radiobuttoneita.
  • Appearance valinnalla voidaan valita ulkoasuksi pallukka (Normal) tai painike (Button)
  • Pallukan sijainnin voi määritellä ominaisuudella CheckAlign
  • Ominaisuus Checked kertoo onko radiobutton valittu
  • Tärkein tapahtuma on CheckedChanged, joka tapahtuu aina tilan muuttuessa. Tapahtuu siis kahdelle yhtä aikaa, koska yksi muuttuu valituksi ja toisesta valinta poistuu.
    [/list]
  • Laitetaan pari radiobuttonia samaan groupboxiin

    // luodaan groupbox
    GroupBox gb = new GroupBox();
    
    // luodaan eka radiobutton
    RadioButton rb1 = new RadioButton();
    // asetetaan nimi
    rb1.Name = "rb1";
    // asetetaan teksti
    rb1.Text = "Vaihtoehto 1";
    // lisätään tapahtumankäsittelijä tilanmuutokselle
    rb1.CheckedChanged += new EventHandler(rb_CheckedChanged);
    // lisätään radiobutton groupboxiin
    gb.Controls.Add(rb1);
    
    // luodaan toka radiobutton
    RadioButton rb2 = new RadioButton();
    // asetetaan nimi
    rb2.Name = "rb2";
    // asetetaan teksti
    rb2.Text = "Vaihtoehto 2";
    // lisätään tapahtumankäsittelijä tilanmuutokselle
    rb2.CheckedChanged += new EventHandler(rb_CheckedChanged);
    // sijoitetaan vähän alemmaksi kuin eka
    rb2.Top = 20;
    // lisätään radiobutton groupboxiin
    gb.Controls.Add(rb2);
    
    // lisätään groupbox lomakkeelle (johon this viittaa)
    this.Controls.Add(gb);
    

    Molempien radiobuttoneiden tilanmuutoksen käsittelijä osoittaa samaan metodiin

    void rb_CheckedChanged(object sender, EventArgs e)
    {
    	// radiobutton on senderissä
    	RadioButton rb = (RadioButton)sender;
    	// jos valittu
    	if (rb.Checked)
    	{
    		MessageBox.Show(rb.Name + " valittu");
    	}
    }
    

    Navigointi

    Social Media