Základní formulářové prvky

Windows Forms

Windows GUI

SSŠVT


Základní formulářové prvky

Obsah


Form

Základní komponentou ve Windows Forms je formulář (Form). Po spuštění aplikace se v metodě Main třídy Program vytvoří instance hlavního formuláře celé aplikace (po založení WinForms projectu ve VS je výchozí jméno tohoto formuláře Form1).

Formulář je z pohledu OOP třídou. Všechny formuláře mají společného předka (třídu Form). Od jiných tříd se formuláře liší tím, že mají svoji vizuální část. A Visual Studio (jak napovídá jeho název) nám umožňuje formuláře vizuálním způsobem navrhovat. Na formulář můžeme pomocí technologie drag-and-drop klást tzv. ovládací prvky (controls), což jsou opět třídy, které tentokrát dědí ze společného předka Control a které mají rovněž svoji vizuální část.


public class Program
{
    public static void Main(string[] args)
    {
        MainForm mainForm = new MainForm();
        Application.Run(mainForm);
    }
}

public class MainForm : Form
{
    public MainForm()
    {
        InitializeComponent();
    }

    // ...
}
        

Následuje stručný popis nejběžnějších ovládacích prvků.


Label

Pokud chceme na formuláři zobrazit text, použijeme popisku (třída Label).

Label labelName = new Label();
labelName.Text = "Zadejte jméno a příjmení:";
this.Controls.Add(labelName);
        

Button

Aby byla aplikace interaktivní (reagovala na požadavky uživatele, např. na kliknutí myši), můžeme použít ovládací prvek tlačítko (třída Button).

Button buttonSave = new Button();
buttonSave.Text = "Uložit";
this.Controls.Add(buttonSave);
        

TextBox

Ovládací prvek textbox (třída TextBox) se hodí pro případy, kdy očekáváme od uživatele nějaký vstup. Do textboxu může zadat volný text.

TextBox textBoxName = new TextBox();
this.Controls.Add(textBoxName);
        
string nameEntered = textBoxName.Text();
        

NumericUpDown

Pro zadání čísla lze použít ovládací prvek NumericUpDown.

NumericUpDown numericUpDownYearOfBirth = new NumericUpDown();
this.Controls.Add(numericUpDownYearOfBirth);
        
int yearEntered = Convert.ToInt32(numericUpDownYearOfBirth.Value);
        

DateTimePicker

Pokud má uživatel zadat údaje týkající se datumu nebo času, hodí se komponenta datetimepicker (třída DateTimePicker).

DateTimePicker dateTimePickerBirthDate = new DateTimePicker();
this.Controls.Add(dateTimePickerBirthDate);
        
DateTime dateEntered = dateTimePickerBirthDate.Value;
        

CheckBox

Pro zadání hodnot typu "ano/ne" ("pravda/nepravda", "true/false", "on/off" apod.) je vhodné použít komponentu CheckBox.

CheckBox checkBoxIncludeInPoll = new CheckBox();
this.Controls.Add(checkBoxIncludeInPoll);
        
bool answer = checkBoxIncludeInPoll.Checked;
        

RadioButton

Pro výběr jedné z (ne příliš mnoha) možností můžeme použít sadu ovládacích prvků typu RadioButton.

RadioButton radioButtonSingle = new RadioButton();
RadioButton radioButtonMarried = new RadioButton();
// ...
this.Controls.Add(radioButtonSingle);
this.Controls.Add(radioButtonMarried);
        
bool isSingle = radioButtonSingle.Checked;
bool isMarried = radioButtonMarried.Checked;
// ...
        

PictureBox

Pro práci s obrázkem, resp. jeho umístění na formulář se hodí picturebox (třída PictureBox).