none
RectangleShape Hide/show RRS feed

  • 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

     

     

     

    Samstag, 3. Dezember 2011 12:05

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

    Dienstag, 6. Dezember 2011 09:14
  • 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


    Dienstag, 6. Dezember 2011 12:41
    Moderator

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

    Sonntag, 4. Dezember 2011 15:14
    Moderator
  • 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

    Dienstag, 6. Dezember 2011 09:14
  • 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


    Dienstag, 6. Dezember 2011 12:41
    Moderator