Änderungen in Winform C # verfolgen

8

Ich habe ein Formular, das Tabcontrol hostet. Jede dieser Registerkarten verfügt über zahlreiche Steuerelemente von Textbox, Combobox, Treecontrol, Spin-Steuerelemente.

Oben auf dem Formular befindet sich ein Textfeld.

Wenn Änderungen an den Steuerelementen der Formulare vorgenommen werden, wenn ein Wert in der Combobox von Registerkarte 1 geändert wird oder ein Element aus der Baumstruktur gelöscht wurde, muss ein "*" angezeigt werden, das angibt, dass bestimmte Werte geändert wurden .

Wie kann ich das auf effiziente Weise erreichen? oder behandelt die resp. steuert geändertes Ereignis die einzige Möglichkeit zu wissen, ob ein Artikel geändert wird oder nicht?

    
siva 18.01.2010, 17:32
quelle

3 Antworten

4

Ich denke, dass dieser Artikel auf Codeproject Ihnen helfen kann, hilft es bei der Verfolgung von Änderungen in der Winforms-Steuerelemente.

Hoffe, das hilft.

    
t0mm13b 18.01.2010, 17:39
quelle
1

Dies hängt vollständig von der zugrunde liegenden Architektur Ihrer Software ab. Wenn es auf eine naive Weise geschrieben wurde, dann ist ja eine Form der rohen Gewalt nur der einzige Weg, den man gehen kann (und das wird natürlich den Code nur noch schlimmer machen - deshalb ist gute Architektur wichtig ).

Wenn andererseits die Software einigermaßen gut entworfen wurde, haben Sie Objekte hinter der Benutzeroberfläche, die den UI-Status verfolgen. Diese Objekte können etwas wie INotifyPropertyChanged implementieren und Sie können dies mit einem Mapping-Mechanismus nutzen, um die Benutzeroberfläche für geänderte Felder zu aktualisieren.

Ich vermute, dass Sie in der ersten Situation fallen, wo gute Antworten auf Ihr Problem lange vor dem, was Sie jetzt versuchen, beseitigt wurden. Ich schließe das von Ihrer Aussage ab, dass das Formular "eine Tabcontrol hostet" und dass "jede dieser Tabs [sic] viele Steuerelemente hat ..." Dies ist ein UI Antipattern, das ich immer wieder von arm gesehen habe Designer.

    
Greg D 18.01.2010 17:36
quelle
1

Sie können etwas in diesen Bereichen ausprobieren. Sie müssen für jeden Steuerelementtyp in Ihrem Formular ein Bit hinzufügen. Laden Sie beim Ladevorgang Ihres from eine addUpdateNotification (this);

%Vor%     
BarrettJ 18.01.2010 17:46
quelle

Tags und Links