Lektion 19: lösningsförslag
- class ConsoleInput
- {
- public static int ReadInt()
- {
- do
- {
- Console.Write("Mata in ett heltal: ");
- string s = Console.ReadLine();
- try
- {
- int value = int.Parse(s);
- return value;
- }
- catch
- {
- Console.WriteLine(s + " är inte ett giltigt heltal");
- }
- } while (true);
- }
- public static double ReadDouble()
- {
- do
- {
- Console.Write("Mata in ett decimaltal: ");
- string s = Console.ReadLine();
- try
- {
- double value = double.Parse(s);
- return value;
- }
- catch
- {
- Console.WriteLine(s + " är inte ett giltigt decimaltal");
- }
- } while (true);
- }
- public static bool ReadBool()
- {
- do
- {
- Console.Write("Mata in ett booleskt värde: ");
- string s = Console.ReadLine();
- try
- {
- bool value = bool.Parse(s);
- return value;
- }
- catch
- {
- Console.WriteLine(s + " är inte ett giltigt booleskt värde");
- }
- } while (true);
- }
- public static string ReadString()
- {
- Console.Write("Mata in en sträng: ");
- string s = Console.ReadLine();
- return s;
- }
- }
- private TableLayoutPanel CreateNordicFlag(Color colorBackground, Color colorCross)
- {
- TableLayoutPanel flag = new TableLayoutPanel
- {
- RowCount = 3,
- ColumnCount = 3,
- Dock = DockStyle.Fill
- };
- Controls.Add(flag);
- flag.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 30));
- flag.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 10));
- flag.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 60));
- flag.RowStyles.Add(new RowStyle(SizeType.Percent, 45));
- flag.RowStyles.Add(new RowStyle(SizeType.Percent, 10));
- flag.RowStyles.Add(new RowStyle(SizeType.Percent, 45));
- flag.Controls.Add(CreatePanel(colorBackground));
- flag.Controls.Add(CreatePanel(colorCross));
- flag.Controls.Add(CreatePanel(colorBackground));
- flag.Controls.Add(CreatePanel(colorCross));
- flag.Controls.Add(CreatePanel(colorCross));
- flag.Controls.Add(CreatePanel(colorCross));
- flag.Controls.Add(CreatePanel(colorBackground));
- flag.Controls.Add(CreatePanel(colorCross));
- flag.Controls.Add(CreatePanel(colorBackground));
- return flag;
- }
- private TableLayoutPanel CreateNordicFlag(Color colorBackground, Color colorCrossOuter, Color
colorCrossInner)
- {
- TableLayoutPanel flag = new TableLayoutPanel
- {
- RowCount = 5,
- ColumnCount = 5,
- Dock = DockStyle.Fill
- };
- Controls.Add(flag);
- flag.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 30));
- flag.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 5));
- flag.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 10));
- flag.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 5));
- flag.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 50));
- flag.RowStyles.Add(new RowStyle(SizeType.Percent, 40));
- flag.RowStyles.Add(new RowStyle(SizeType.Percent, 5));
- flag.RowStyles.Add(new RowStyle(SizeType.Percent, 10));
- flag.RowStyles.Add(new RowStyle(SizeType.Percent, 5));
- flag.RowStyles.Add(new RowStyle(SizeType.Percent, 40));
- flag.Controls.Add(CreatePanel(colorBackground));
- flag.Controls.Add(CreatePanel(colorCrossOuter));
- flag.Controls.Add(CreatePanel(colorCrossInner));
- flag.Controls.Add(CreatePanel(colorCrossOuter));
- flag.Controls.Add(CreatePanel(colorBackground));
- flag.Controls.Add(CreatePanel(colorCrossOuter));
- flag.Controls.Add(CreatePanel(colorCrossOuter));
- flag.Controls.Add(CreatePanel(colorCrossInner));
- flag.Controls.Add(CreatePanel(colorCrossOuter));
- flag.Controls.Add(CreatePanel(colorCrossOuter));
- flag.Controls.Add(CreatePanel(colorCrossInner));
- flag.Controls.Add(CreatePanel(colorCrossInner));
- flag.Controls.Add(CreatePanel(colorCrossInner));
- flag.Controls.Add(CreatePanel(colorCrossInner));
- flag.Controls.Add(CreatePanel(colorCrossInner));
- flag.Controls.Add(CreatePanel(colorCrossOuter));
- flag.Controls.Add(CreatePanel(colorCrossOuter));
- flag.Controls.Add(CreatePanel(colorCrossInner));
- flag.Controls.Add(CreatePanel(colorCrossOuter));
- flag.Controls.Add(CreatePanel(colorCrossOuter));
- flag.Controls.Add(CreatePanel(colorBackground));
- flag.Controls.Add(CreatePanel(colorCrossOuter));
- flag.Controls.Add(CreatePanel(colorCrossInner));
- flag.Controls.Add(CreatePanel(colorCrossOuter));
- flag.Controls.Add(CreatePanel(colorBackground));
- return flag;
- }
- private Panel CreatePanel(Color color) {
- return new Panel
- {
- BackColor = color,
- Dock = DockStyle.Fill,
- Margin = new Padding(0)
- };
- }
- private TableLayoutPanel CreateTextBoxForm(string[] labels)
- {
- TableLayoutPanel panel = new TableLayoutPanel
- {
- ColumnCount = 2,
- RowCount = labels.Length,
- Dock = DockStyle.Fill
- };
- foreach (string label in labels)
- {
- panel.Controls.Add(new Label { Text = label });
- panel.Controls.Add(new TextBox());
- }
- return panel;
- }