vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Erstellen von dynamischen Kontextmen?s - wann immer Sie sie brauchen!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Was ist günstiger einfach eine Eigenschaft setzen oder abfragen. 
Autor: Alex123
Datum: 11.10.17 15:14

Hallo zusammen,

Ich habe eine Windowsform mit einen Menü und ein Datagrit.
Ich prüfe regelmäßig die Daten im Datagrit und reagiere darauf.
Ich möchte einige Menüpunkte ausblenden lassen wenn es eine Spalte mit entsprechenden Namen schon gibt.

Meine Frage:
Sollte ich pauschal die Eigenschaft setzen (z.B. Menuepunkt.visible = false )
Me.AddUptimeToolStripMenuItem.Visible = False
oder
Sollte ich vorher abfragen ob der Punkt nicht schon gesetzt ist. (wenn Menuepunkt.visible = false dann mach nix ansonsten Menuepunkt.visible = false)
If (Me.AddUptimeToolStripMenuItem.Visible) Then _
  Me.AddUptimeToolStripMenuItem.Visible = False
Ich glaube eigentlich ist es egal. Aber gibt es etwas was dafür oder dagegen spricht. z.B. guter Stil oder das setzen von Variablen kostet mehr oder weniger Ressourcen oder irgendwas was ich nicht kenne

Vielen Dank
Alex
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Was ist günstiger einfach eine Eigenschaft setzen oder abfragen. 
Autor: Manfred X
Datum: 11.10.17 16:57

Hallo!

Die Gestalt von Menüs sollte von Daten möglichst unabhängig sein.
Wenn bestimmte Menüpunkte unter gewissen Datenbedingungen
nicht ausgeführt werden können (=funktionslos sind),
kann man sie Enabled = False setzen.

Anders zu beurteilen ist der Fall, daß ein Menü in verschiedenartigen
Formularen eingesetzt werden soll und in manchen Formularen teilweise
bedeutungslos (=nicht anwendbar) ist.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Was ist günstiger einfach eine Eigenschaft setzen oder abfragen. 
Autor: Alex123
Datum: 12.10.17 12:57

Hallo Manfred,

Danke für Deine Antwort.
Aber die Frage bleibt die selbe ob ich nun den Menüpunkt .Enable=false setze oder .visible=false.

Sollte ich den Wert pauschal setzen oder vorher abfragen und dann wenn nötig setzen?

Vielen Dank
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Was ist günstiger einfach eine Eigenschaft setzen oder abfragen. 
Autor: Manfred X
Datum: 12.10.17 15:13

Die Frage kann man nicht so einfach beantworten.

Normalerweise ist bei einer "Fremd"-Klasse nicht bekannt,
wie das Setzen einer Eigenschaft intern verarbeitet
wird - welche Folgen die Änderung ggf. nach sich zieht oder
ob die Zuweisung eines bereits gesetzten Wertes abgefangen wird.

Zudem ist zu beachten, daß das Zuweisen eines Wertes auf eine Klassen-
Eigenschaft Ereignisse auslösen kann - die Effizienz hängt dann
ggf. davon ab, was die entsprechenden Verarbeitungsroutinen in der
rufenden Anwendung erledigen müssen.

Relevante Ereignisse in Deinem Fall: VisibleChanged / EnabledChanged
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Was ist günstiger einfach eine Eigenschaft setzen oder abfragen. 
Autor: Alex123
Datum: 12.10.17 16:46

Manfred X schrieb:
Zitat:


Normalerweise ist bei einer "Fremd"-Klasse nicht
bekannt,
wie das Setzen einer Eigenschaft intern verarbeitet
wird - welche Folgen die Änderung ggf. nach sich zieht oder
ob die Zuweisung eines bereits gesetzten Wertes abgefangen
wird.


Stimmt jetzt wo Du es schreibst.
Dann denke ich es wäre es bei unbekannten Klassen besser abzufragen und dann ggf. setzen.

Vielen Dank

Alex
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Was ist günstiger einfach eine Eigenschaft setzen oder abfragen. 
Autor: Manfred X
Datum: 12.10.17 17:00

Wichtig ist, den Überblick über das eigene Formular und dessen
Ereignisverarbeitung zu behalten.
Gerade bei Controls lösen Änderungen an Eigenschaften, die die
Ansicht, Größe, Position betreffen, das Neuzeichnen von Teilen des
Formulars aus (diverse Paint-Events) oder bei daten-gebundenen
Controls kann es zur neuen Abfrage der Datenquelle kommen.

Besondere Vorsicht ist geboten, wenn Eigenschaften eines Controls
innerhalb einer Ereignisverarbeitungs-Routine gesetzt werden.
Dies kann weitere Ereignisse auslösen (unerwartete Effekte) und
eventuell sogar zu einer "endlosen" Ereigniskette führen (Stapelüberlauf).
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Was ist günstiger einfach eine Eigenschaft setzen oder abfragen. 
Autor: Franki
Datum: 17.10.17 04:20

Hallo,

du solltest das für den User so komfortabel wie möglich machen.
Unter Windows ist es ja üblich, dass Menüpunkte "ausgegraut" werden wenn sie nicht zutreffend sind. (Enable=false) Dann weiß der User woran er ist.

Wenn du die Menüpunkte unsichtbar machst, dann sieht sie der User nicht, er ist evtl. verwirrt weil das Menü "springt" in der Höhe und er sich wundert warum das Menü nicht so ist wie gewohnt.

Deine Plausibilitätsprüfung sollte so gestalltet werden, dass der User sieht was er im Menü anlklicken kann und was nicht.

Bearbeiten / Einfügen ist auch dann immer "ausgegraut" wenn nichts in der Zwischenablage ist was eingefügt werden kann. Aber dennoch ist der Menüpunkt sichtar aber halt "enabeld". Da weiß der User woran er ist und merkt auch was er evtl. falsch gemacht hat.

Gruß
Frank
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Was ist günstiger einfach eine Eigenschaft setzen oder abfragen. 
Autor: Manfred X
Datum: 17.10.17 07:57

Hallo!

Tja.

Viele Anwendungen werden ständig komplexer und bieten dem Benutzer
deshalb eine Fülle von Einstell- und Auswahlmöglichkeiten.
Häufig werden dafür "dynamische" Menüs eingesetzt, die nur genau die
jeweils relevanten Optionen anbieten - Untermenüs werden mitunter
komplett ausgetauscht - z.B. abhängig von Art, Menge oder Struktur
der aktuell bearbeiteten Daten.

Ob solche "dynamischen" Menüs oder ob feste Menüs mit vielen
(z.T. "ausgegrauten") Untermenü-Ebenen für den Benutzer übersichtlicher
sind, kann wohl nur für den Einzelfall sinnvoll entschieden werden.

Als Alternative bietet sich der Einsatz von "Assistenten" an, die dem
Benutzer sukzessive die erforderlichen Entscheidungen - auf Grundlage der
unter den gegebenen Bedingungen relevanten Optionen - abverlangen.

Beitrag wurde zuletzt am 17.10.17 um 08:03:54 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Was ist günstiger einfach eine Eigenschaft setzen oder abfragen. 
Autor: Franki
Datum: 18.10.17 03:10

Hallo,

richtig, das kann eigentlich nur im Einzelfall entschieden werden was da sinnvoll ist. Das hängt einerseits von der Anwendung selbst ab, andererseits aber auch von den Leuten die sie bedienen müssen und deren Kenntnissen.

Und grade wenn es Sprachschwierigkeiten gibt habe ich die Erfahrung gemacht, dass sich Anwender einfach merken: Der zweite Punkt muss angeklickt werden usw. Die können oft ncht zwischen Datei/speichern und Datei/speichern unter unterscheiden und wundern sich dann, dass es eine Auswahl gibt wohin gespeichert werden soll.

Je nach Anwendung ist das mit den Assistenten die deutlich bessere Wahl wenn die Möglichkeiten komplex sind, das nutze ich auch aber nur da wo notwendig.

Wenn möglich versuche ich die vorhandenen Menüpunkte auf ein Minimum zu reduzieren für den Alltagsbetrieb der Anwendungen. Der Admin hat dann natürlich mehr Möglichkeiten und auch entsprechende Auswahl. Aber der weiß dann auch was er macht (bzw. machen muss)

Gruß
Frank
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel