Laden...

Forenbeiträge von Commander82 Ingesamt 4 Beiträge

04.09.2023 - 07:30 Uhr

Hallo Zusammen,

ich habe mir mal einen kleines Hilfe Tool gebaut.

ich habe nach einer möglichkeit gesuch alle Felder unabhängig von ihrer Art zu Reseten / zu Leeren in einer schleife.

Raus gekommen ist folgendes:

 public static void ClearAll(Control ctrl)
 {
     foreach (Control tmp in ctrl.Controls)
     {
         if (tmp is Form || tmp is GroupBox)
         {
             ClearAll(tmp);
         }
         else if (tmp is TabControl)
         {
             foreach (TabPage tp in tmp.Controls)
             {
                 ClearAll(tp);
             }
         }
         else if (tmp is TextBox|| tmp is RichTextBox || tmp is MaskedTextBox)
         {
             tmp.Text = "";
         }
         else if (tmp is CheckBox)
         {
             CheckBox check = (CheckBox)tmp;
             check.Checked = false;
         }
         else if (tmp is ComboBox)
         {
             ComboBox combo = (ComboBox)tmp;
             if (combo.Items.Count > 0)
             {
                 combo.SelectedIndex = 0;
             }
             else
             {
                 combo.SelectedIndex = -1;
                 combo.Text = null;
             }
         }

         else if (tmp is DateTimePicker)
         {
             DateTimePicker dtp = (DateTimePicker)tmp;
             dtp.Value = DateTime.Now;
         }
         else if(tmp is DataGridView)
         {
             DataGridView dgvr = (DataGridView)tmp;
             dgvr.Rows.Clear();
         }

     }

 }

Ich habe das ganze in eine Statische Klasse (names "helper") gesetz und rufe dann das ganze so auf

helper.ClearAll(this);

Was haltet Ihr davon?

würde ja gerne es so machen das ich dies "tihs" Rauslasen kann und er das Formular selbst erkennt von dem der befehl kam .

leider bin ich mit meinem Wissen noch nicht so weit!

Lieben Gruß

Commander 82

14.12.2022 - 10:23 Uhr

Danke für den Denk Anstoss ich habe es jetzt mit dem Ansatz gelöst bekommen

12.12.2022 - 18:28 Uhr

ok

Kannst du mir kurz ein Beispiel geben ich stehe grade auf dem Schlauch!

Danke

12.12.2022 - 18:07 Uhr

Hallo zusammen,

ich probiere mich grade mal mit gettern und settern aus und wie soll es anders sein natürlich fange ich gleich mit dem schwersten an.

also was ich habe

( als Hilfe Szenario ist eine Pizza Bestellung und es ist nur ein Lern / Übungsprojekt)

die Klasse sieht grade So aus


internal class order
    {
        private order()
        {

        }
       
        public string Prefix { get; set; }
        public string Name { get; set; }
        public string Prename { get; set; }
        public string Street { get; set; }
        public string Produkt { get; set; }
        public string Ordernr{ get; set; }

        internal static order _contract = null; 
        public static order Begin()
        {
            if (_contract == null)
                _contract = new order
            return _contract;
        }

    }
            
        
    }
    

der aufruf ist so


myorder = order.Begin(); // ersetzt mir das New order() 

was ich möchte ist jetzt das ich beim Aufruf bzw. bei füllen folgendes machen kann


myorder =order.Beginn()
myorder.Kunde.Name = textbox_name.Text();  // schmidt
myorder.Kunde.vorname = textbox_vorname.Text(); // hans
myorder.Product.Nr = textbox_prodnr.Text(); // (int) 5
myorder.Product.name = textbox_prodname.Text(); // "Pizza Hawei"

für ausgabe dann soll es so möglich sein


// und für die ausgabe
(readonly) textbox_ordernr = myorder.ordernr //  Ihre Bestellung NR. 123456 ( wird von system erstellt)
// ausgabe des Gesammten Kunden
myorder.Kunde() // Rückgabe "Hans Schmidt"
// oder als alternative aufruf
myorder.Kunde.vorname // ausgabe = Hans


wie kann ich das machen