C# :: Aufgabe #273 :: Lösung #1
2 Lösungen

#273
Funktionswerte einer Parabel berechnen - Windows Forms
Anfänger - C#
von paddlboot
- 04.12.2019 um 16:13 Uhr
#1

von Exception (7090 Punkte)
- 21.12.2019 um 19:58 Uhr
Form1.cs
C#-Code
Form1.Designer.cs
C#-Code

using System; using System.Collections.Generic; using System.Drawing; using System.Linq; using System.Windows.Forms; namespace _273_Parabelrechner { public partial class Form1 : Form { private static Panel panel_left; private static Panel panel_right; private static Dictionary<string, int> values; public Form1() { InitializeComponent(); InitControls(); values = new Dictionary<string, int>(); } private void InitControls() { this.Width = 500; this.Height = 350; this.MaximizeBox = false; this.MaximizeBox = false; this.FormBorderStyle = FormBorderStyle.Fixed3D; this.Text = "273 - Parabelrechner"; #region left panel_left = new Panel(); panel_left.Width = this.Width / 2; panel_left.Height = this.Height; panel_left.Location = new Point(0, 0); GroupBox g = new GroupBox(); g.Width = panel_left.Width - 20; g.Height = (int)(panel_left.Height - 150); g.Text = "X-Werte"; g.Name = "GroupBox"; g.Location = new Point(10, 10); int x = 10, y = 50; Label l = new Label(); l.Name = "label_Startwert"; l.Text = "Startwert"; l.Location = new Point(x, y); TextBox tb = new TextBox(); tb.Name = "textbox_Startwert"; tb.Width = (int)(g.Width / 2.5); tb.Location = new Point(l.Right + 20, l.Top); tb.KeyUp += Textbox_Validation; g.Controls.Add(tb); g.Controls.Add(l); y += 50; l = new Label(); l.Name = "label_Endwert"; l.Text = "Endwert"; l.Location = new Point(x, y); tb = new TextBox(); tb.Name = "textbox_Endwert"; tb.Width = (int)(g.Width / 2.5); tb.Location = new Point(l.Right + 20, l.Top); tb.KeyUp += Textbox_Validation; g.Controls.Add(tb); g.Controls.Add(l); y += 50; l = new Label(); l.Name = "label_Schrittweite"; l.Text = "Schrittweite"; l.Location = new Point(x, y); tb = new TextBox(); tb.Name = "textbox_Schrittweite"; tb.Width = (int)(g.Width / 2.5); tb.Location = new Point(l.Right + 20, l.Top); tb.KeyUp += Textbox_Validation; g.Controls.Add(tb); g.Controls.Add(l); panel_left.Controls.Add(g); Button b = new Button(); b.Name = "button_berechnen"; b.Text = "&Berechnen"; b.Width = panel_left.Width / 2 - 30; b.Height = 85; b.Location = new Point(10, g.Bottom + 5); b.Click += Click_Calculate; panel_left.Controls.Add(b); b = new Button(); b.Name = "button_reset"; b.Text = "&Reset"; b.Width = panel_left.Width / 2 - 30; b.Height = 85; b.Location = new Point(g.Right - b.Width, g.Bottom + 5); b.Click += Click_Reset; panel_left.Controls.Add(b); this.Controls.Add(panel_left); #endregion #region right panel_right = new Panel(); panel_right.Width = panel_left.Width; panel_right.Height = panel_left.Height; panel_right.Location = new Point(panel_left.Width, 0); ListBox lb = new ListBox(); lb.Name = "listbox"; lb.Location = new Point(10, 10); lb.Width = panel_right.Width - 45; lb.Height = panel_right.Height - 60; panel_right.Controls.Add(lb); this.Controls.Add(panel_right); #endregion } private void Textbox_Validation(object sender, KeyEventArgs e) { TextBox tb = sender as TextBox; int value; if(int.TryParse(tb.Text, out value)) { tb.BackColor = default(Color); string key = tb.Name.Replace("textbox_", ""); if (values.ContainsKey(key)) { values[key] = value; } else { values.Add(key, value); } } else { tb.BackColor = Color.LightPink; } } private void Click_Calculate(object sender, EventArgs e) { int startwert, endwert, schrittweite; if (!values.TryGetValue("Startwert", out startwert) || !values.TryGetValue("Endwert", out endwert) || !values.TryGetValue("Schrittweite", out schrittweite)) { return; } ListBox lb = panel_right.Controls.Find("listbox", true).FirstOrDefault() as ListBox; lb.Items.Clear(); lb.Items.Add("Berechnete Werte"); lb.Items.Add("-------------------------------"); for (int i = startwert; i <= endwert; i += schrittweite) { int x = i; int y = x * x; lb.Items.Add($"X: {x}\tY: {y}"); } } private void Click_Reset(object sender, EventArgs e) { values.Clear(); ListBox lb = panel_right.Controls.Find("listbox", true).FirstOrDefault() as ListBox; lb.Items.Clear(); } } }
Form1.Designer.cs

namespace _273_Parabelrechner { partial class Form1 { /// <summary> /// Erforderliche Designervariable. /// </summary> private System.ComponentModel.IContainer components = null; /// <summary> /// Verwendete Ressourcen bereinigen. /// </summary> /// <param name="disposing">True, wenn verwaltete Ressourcen gelöscht werden sollen; andernfalls False.</param> protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Vom Windows Form-Designer generierter Code /// <summary> /// Erforderliche Methode für die Designerunterstützung. /// Der Inhalt der Methode darf nicht mit dem Code-Editor geändert werden. /// </summary> private void InitializeComponent() { this.SuspendLayout(); // // Form1 // this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 20F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(251, 39); this.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); this.Name = "Form1"; this.Text = "Form1"; this.ResumeLayout(false); } #endregion } }
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1