Vytvořte program kreslící sloupcové grafy. Sloupek grafu bude představovat následující třída:
public class Column { // popisek sloupce public string Text { get; set; } // hodnota sloupce public int Value { get; set; } }
Program bude obsahovat 3 formuláře:
MainMenuStrip
) a panelem nástrojů (ToolStrip
).ListBox
) a tlačítka (Button
) pro přidání, smazání a odebrání položky ze seznamu.String.IsNullOrWhitespace
, int.Parse
, int.TryParse
Validating
. Její druhý parameter je typu CancelEventArgs
, který má vlastnost Cancel
. Nastavením Cancel
na true
označíte ovládací prvek za nevalidní.CauseValidation
ovlivní, jestli ovládací prvek vyvolá validaci formuláře.ValidateChildren()
formuláře vyvolá validaci všech ovladacích prvků na něm. Vrací true
pokud jsou všechny validní.SetError
. První parametr metody je ovládácí prvek na kterém vznikla chyba a druhý je textový řetězec s chybovou hláškou. Po nastavení hlášky se vedle příslušného ovládacího prvku zobrazí varovný symbol s hláškou jako tooltipem. Zrušení hlášky provedete prázdným chybovým řetezcem.private void okButton_Click(object sender, EventArgs e) { if (ValidateChildren()) { DialogResult = DialogResult.OK; } else { DialogResult = DialogResult.None; MessageBox.Show("Invalid data."); } }
ListBox
) a 4 tlačítka.ListBox.SelectedItems
, ListBox.SelectedIndex
, ListBox.Items.Add
, ListBox.Items.Remove
, ListBox.Items.IndexOf
, ListBox.Items[i]
ToString
na příslušné položce.dataListBox.Items[index] = dataListBox.Items[index];
Column[]
do nebo z formuláře pro komunikaci s volající třídou. Alternativně můžete použít seznam.ObjectCollection
a její položky jsou typu object
, takže opravdu může obsahovat cokoliv. Pro převedení na sloupce použijte přetypování.MenuStrip
) obsahuje položku "Aplikace", která jako podmenu obsahuje položky "Nastavit data grafu..." a "Konec". Mezi těmito položkami bude rozdělovník (Separator).
null
na prázdné pole new Column[0]
).
Invalidate()
pro vynucení překleslení grafu a ujistěte se, že ho voláte na správném ovládacím prvku.
Tag
typu object
. Do této vlastnosti si můžete uložit naprosto cokoliv. Zamyslete se, jak by vám to mohlo ušetřit práci na předchozím úkolu.Minimum
, Maximum
) pro zadání barevných složek: červené, zelené a modré.