vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Schützen Sie Ihre Software vor Software-Piraterie - mit sevLock 1.0 DLL!  
 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 - Fortgeschrittene
Control verweigert Visible-Eigenschaft 
Autor: Joe1968
Datum: 20.06.16 18:49

Hallo zusammen,

ich habe ein Panel mit einigen dynamisch erzeugten Controls, welches zum Anzeigen von Leitfadenergebnissen genutzt wird. Mein Problem dreht sich um eine Textbox auf diesem Panel, welche ich abhängig von einem Selected Item einer Listbox von Visible = False auf Visible = True setzen will. Dazu gehe ich mit einer Schleife durch die auf dem Panel befindlichen Control und ordne z.B. diese Textbox einer Variablen zu.
Diese setze ich dann auf Visible = True, die Eigenschaft ändert sich aber nicht. Bei anderen Labels und Listboxen klappt das komischerweise.

Habt Ihr eine Idee, an der sowas typischerweise liegen könnte und auf die ich noch nicht gekommen bin?

Viele Grüße
Joe
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Control verweigert Visible-Eigenschaft 
Autor: Manfred X
Datum: 20.06.16 22:29

Hallo!

Du hast wohl einen Fehler in Deinem Code.
Was verstehst Du unter [I]"ordne z.B. diese Textbox einer Variablen zu".[/I]
Denkbar:
- Du "erwischt" nicht das Control, das Du möchtest.
- Das Control ist von anderen Elementen verdeckt.
Die Änderung der Visible-Eigenschaft wird deshalb nicht sichtbar.
- Du löst bei der Zuweisung eine Ereigniskette aus,
durch die die Visible-Eigenschaft zurückgesetzt wird.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Control verweigert Visible-Eigenschaft 
Autor: Joe1968
Datum: 21.06.16 20:57

Das habe ich alles schon kontrolliert.
Es ist so, dass in diesem Leitfaden mehrere gleichartige Tabpages erzeugt werden. Es ist ein Gesprächsleitfaden für ein Callcenter und je nach vorhandenen Produkten des Kunden wird eine Tabpage erzeugt und die Fragen angezeigt. Zu Beginn werden ein paar fest positionierte Labels und TextBoxen erzeugt und auf Visible = False gesetzt. Erst bei einer bestimmten Antwort einer bestimmten Frage wird das Label und die TextBox sichtbar gemacht. Das passiert aber nur, wenn man einen bestehenden Datensatz wieder aufruft und die Controls mit den Inhalten der zuvor gegebenen Antworten befüllt werden. Das Verrückte ist, dass die Tabpages von der gleichen Funktion mit immer dem gleichen Ablauf erzeugt werden. Und manchmal wird eben eine TextBox nicht angezeigt, das Label aber schon.

Ich habe mir jetzt mit einer sehr uncharmanten Lösung beholfen. Ich gehe nach Abschluss der Anzeige noch mal über alle Tabpages, durchsuche sie nach relevanten Controls und setze sie auf Visible = True. Komischerweise werden sie dann angezeigt.

Ich vermute, dass man ohne den Quellcode gesehen zu haben, sowieso keine Lösung anbieten kann.
Aber trotzdem vielen Dank für Deinen Versuch
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Control verweigert Visible-Eigenschaft 
Autor: Manfred X
Datum: 22.06.16 06:21

Naja!
Im Deinem ersten Post waren die Textboxen noch auch Panels angesiedelt,
in Deinem zweiten Post ist jetzt von TabPages die Rede.
Der Zugriff auf Controls und das Verhalten von Controls hängt auch vom
Container und dessen Einrichtung ab!
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Control verweigert Visible-Eigenschaft 
Autor: msSuper
Datum: 22.06.16 16:29

Versuch mal nachdem das Control auf Visible gesetzt ist.

Das Control mit .BringToFront nach vorne zu holen.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Control verweigert Visible-Eigenschaft 
Autor: us4711
Datum: 23.06.16 11:46

Ist die TabPage bei hinzufügen des Controls sichtbar?
Manchmal werden neu controls erst nach Tabpage.Invalidate dargestellt, vielleicht mal nach hinzufügen des Controls ausführen.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Control verweigert Visible-Eigenschaft 
Autor: Joe1968
Datum: 29.06.16 19:00

Nein, leider ist weder BringToFront, noch Invalidate die Lösung
Mir ist aber eben noch etwas aufgefallen, was auf einen Programmierfehler von mir hindeutet. Es gibt für jedes Produkt eine TabPage, auf jeder TabPage ein Panel und auf dem Panel werden die Controls hinzugefügt. Die betroffene Textbox ist immer in der letzten TabPage bzw. auf dem Panel sichtbar, alle anderen nicht. Ich vermute, dass ich selbst Schuld bin. Da dieses Programm leider aus meinen Anfängen stammt, habe ich einen ziemlich unstrukturierten Spaghetticode. Ich werde also noch mal tief eintauchen und versuchen herauszufinden warum die Textbox immer nur auf dem letzten sichtbar ist.

Ich habe ja zum Glück noch eine Ausweichlösung gefunden, wenn auch keine charmante. Sobald ich meinen Fehler gefunden habe, poste ich ihn.

Vielen Dank aber schon mal für Eure Beiträge
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Control verweigert Visible-Eigenschaft 
Autor: Manfred X
Datum: 29.06.16 19:35

Hallo!

Mein Tipp wäre, dieses Formular neu aufzubauen und dabei
eine Trennung zwischen Datenklassen und Controls einzuführen.

Die Erfahrung lehrt, daß es auf Dauer kaum Sinn macht, immer
wieder viel Zeit für die Suche nach "Fehlern" und Inkonsistenzen
in einem schwach strukturierten Code aufzuwenden.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Control verweigert Visible-Eigenschaft 
Autor: Joe1968
Datum: 12.09.16 10:56

Ich habe gerade gemerkt, dass ich nicht gepostet habe, was der Fehler war. Es war natürlich ein Programmierfehler meinerseits. Blöderweise habe ich einen Codeabschnitt kopiert, um ein weiteres Control zu erzeugen, den Namen der Variable, der das Control zugewiesen wurde, aber nicht geändert. Nachdem ich das angepasst hatte, lief es natürlich.

Etwas spät, sorry.
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