Benutzer mit den meisten Antworten
RectangleShape Hide/show

Frage
-
Hallo Experten,
ich habe folgende Anordnung: Eine Form, darin ein Panel und darin ein RectangeleShape (Shape1).
Mit folgenden Code erzeuge ich nun über dem Shape1 weitere RectangeleShape(rcAni) dies funzt einwandfrei.
Const maxAni As Int16 = 4 Dim i, ii, iii As Int16 Dim canvas As New ShapeContainer Dim rcAni(12, 2, maxAni) As RectangleShape canvas.Parent = Main.plTestAuswertung03 For i = 1 To 12 '12 For ii = 1 To 2 '2 For iii = 1 To maxAni rcAni(i, ii, iii) = New RectangleShape rcAni(i, ii, iii).Parent = canvas rcAni(i, ii, iii).Name = "B" & i rcAni(i, ii, iii).Size = New System.Drawing.Size(265 / maxAni, 24) If ii = 1 Then rcAni(i, ii, iii).Location = New System.Drawing.Point(463 - iii * (265 / maxAni), 137 + (i - 1) * 28) Else rcAni(i, ii, iii).Location = New System.Drawing.Point(463 + (iii - 1) * (265 / maxAni), 137 + (i - 1) * 28) End If rcAni(i, ii, iii).FillStyle = FillStyle.Solid rcAni(i, ii, iii).FillColor = Color.White rcAni(i, ii, iii).BorderColor = Color.White Next Next Next
Nun will ich, das einige rcAni wieder ausgeblendet werden, was an sich auch funzt nur das Shape1, was dahinter liegt, wird nicht mehr sichtbar, warum?
For iii = 1 To maxAni For i = 1 To 12 '12 If Fragen.Wert(i - 1, TestWert(i - 1)) > 0 Then ii = 2 Else ii = 1 If iii / 2 <= Math.Abs(Fragen.Wert(i - 1, TestWert(i - 1))) Then rcAni(i, ii, iii).Hide() System.Windows.Forms.Application.DoEvents() System.Threading.Thread.Sleep(100) End If Next Next
vielen Dank für eure Lösungen mfg eem monarch
Antworten
-
Hallo Robert,
Me=Main hab das ganze mal zur Abgrenzung in ein Modul gepackt. Im zweiten Teil mit dem Hide , sind die Werte für FragenWert und TestWert, irgendwelche die einzeln Shapes (rcAni) bestimmen die wieder ausgeblendet werden.
Hab das jetzt so gelöst, anstatt von Shapes(rcAni) nehme ich Labels die ich über das Hintergrundshape lege, wenn ich die dann auf die Größe 0,0 festlege, wird das Hintergrundshape in diesen Bereichen wieder sichtbar.
mfg eem monarch
- Als Antwort markiert Robert BreitenhoferModerator Dienstag, 6. Dezember 2011 12:41
-
Me=Main hab das ganze mal zur Abgrenzung in ein Modul gepackt.
Hallo Monarch-Falter,
Freut mich dass Du es lösen könntest. Nur am Rande, einen kleinen Hinweis:
Grundsätzlich solltest Du Dich von Modulen verabschieden, die sind überflüssig. Eigentlich ist ein Module auch nur eine Klasse, deren Member Shared sind. Der Vorteil ist das man Klassen erweitern und kann, bei Modulen geht das nicht. Außerdem kann man Klassen instanziieren, Module nicht. à Klasse oder Modul („wenn man nicht VB.classic vorbelastet ist“ J)
Grüße,
Robert
- Bearbeitet Robert BreitenhoferModerator Dienstag, 6. Dezember 2011 12:41 Korrektur
- Als Antwort markiert Monarch-Falter Dienstag, 6. Dezember 2011 16:28
Alle Antworten
-
Hallo Monarch-Falter,
Ich konnte nur den ersten Teil aus Deinem Code (ich gehe davon aus dass mit Main, Me gemeint ist) nachfolgen und erhalte folgendes Bild (man sieht 12 Rectangles in dem Panel plTestAuswertung03).
Im zweiten Teil (mit dem Hide) fehlt mir Fragen.Wert und TestWert.
Den ganzen relevanter Code (damit alle das reproduzieren kann) zu posten wäre auch nicht schlecht oder eine .zip Datei mit den Code (falls der Code zu groß ist) kann man ihm Public Ordner von SkyDrive laden und den link hier Posten. (Wie nutze ich den SkyDrive?)
http://msdn.microsoft.com/en-us/library/microsoft.visualbasic.powerpacks.rectangleshape(VS.80).aspx
Danke und Grüße,
Robert
-
Hallo Robert,
Me=Main hab das ganze mal zur Abgrenzung in ein Modul gepackt. Im zweiten Teil mit dem Hide , sind die Werte für FragenWert und TestWert, irgendwelche die einzeln Shapes (rcAni) bestimmen die wieder ausgeblendet werden.
Hab das jetzt so gelöst, anstatt von Shapes(rcAni) nehme ich Labels die ich über das Hintergrundshape lege, wenn ich die dann auf die Größe 0,0 festlege, wird das Hintergrundshape in diesen Bereichen wieder sichtbar.
mfg eem monarch
- Als Antwort markiert Robert BreitenhoferModerator Dienstag, 6. Dezember 2011 12:41
-
Me=Main hab das ganze mal zur Abgrenzung in ein Modul gepackt.
Hallo Monarch-Falter,
Freut mich dass Du es lösen könntest. Nur am Rande, einen kleinen Hinweis:
Grundsätzlich solltest Du Dich von Modulen verabschieden, die sind überflüssig. Eigentlich ist ein Module auch nur eine Klasse, deren Member Shared sind. Der Vorteil ist das man Klassen erweitern und kann, bei Modulen geht das nicht. Außerdem kann man Klassen instanziieren, Module nicht. à Klasse oder Modul („wenn man nicht VB.classic vorbelastet ist“ J)
Grüße,
Robert
- Bearbeitet Robert BreitenhoferModerator Dienstag, 6. Dezember 2011 12:41 Korrektur
- Als Antwort markiert Monarch-Falter Dienstag, 6. Dezember 2011 16:28