Anzeige-Problem [Grafik, Label]

  • VB.NET

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von BjöNi.

    Anzeige-Problem [Grafik, Label]

    Guten Tag liebe Community,


    ich arbeite grad an einem Tool und habe folgendes Problem:

    Wenn ich auf Button1 Klicke bleibt das Tool "sozusagen hängen". [ Bei Button 1 wird ein HttpWebRequest ausgeführt ]
    Normalerweise sollte sich jetzt eine Grafik abspielen. Wenn ich den Code [HttpWebrequest] entferne klappt alles wunderbar..



    VB.NET-Quellcode

    1. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    2. Label6.Visible = False
    3. PictureBox1.Visible = False
    4. Label7.Visible = False End Sub


    Button1

    VB.NET-Quellcode

    1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    2. Label7.Visible = True
    3. If Label7.Visible = True Then 'Habs hier mal mit Umwegen gemacht
    4. Label6.Visible = True
    5. End If
    6. Label4.Hide()
    7. TextBox1.Visible = False
    8. TextBox2.Visible = False
    9. PictureBox1.Visible = True
    10. Button1.Visible = False
    11. Label1.Hide()
    12. Label3.Hide()
    13. If Label6.Visible = True Then
    14. ***WebRequest***




    Auf Hilfe würde ich mich freuen..
    Das komische ist, dass sich etwas ausblenden lässt, aber nicht einblenden.


    Gruß

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „K_M_M_K“ ()

    VB-Tag richtig benutzen (von EDR)


    K_M_M_K schrieb:

    Wenn ich den Code [HttpWebrequest] entferne klappt alles wunderbar..
    Dann wäre es vl. hilfreich auch noch zu wissen, wie der lautet :thumbsup:

    K_M_M_K schrieb:

    Label7.Visible = True
    If Label7.Visible = True Then 'Habs hier mal mit Umwegen gemacht
    Und was sollen diese bringen?

    Schreib mal zu jedem Visible=True-Befehl noch nen BringToFront - vl. liegts daran.

    Außerdem wie bereits erwähnt: Pack den ganzen Code mal bitte wie hier beschrieben in den VB-Tag - am besten wie ebenfalls dort beschrieben richtig formatiert. So kann man das ja kaum lesen.

    P.S.: Man kann Steuerelementen Namen geben - dann kann man auch viel besser damit arbeiten :thumbup:
    Weil der Request deine GUI zum Anhalten bringt, bis der Request ausgeführt wurde. Mach das ganze Asynchron, also in einen Thread (oder mit Async im FW 4.0), und schon wird es funktionieren.

    PS: Nutze endlich mal die vorgeschlagenen VB-Tags, die haben schon einen Sinn und lasse die VB6-Funktionen weg (InStr())
    Hab es so gemacht wie du es vorgeschlagen hast:

    Quellcode

    1. Ungültiger threadübergreifender Vorgang: Der Zugriff auf das Steuerelement Label6 erfolgte von einem anderen Thread als dem Thread, für den es erstellt wurde.


    VB.NET-Quellcode

    1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    2. Dim t1 As New System.Threading.Thread(AddressOf Sub1)
    3. Dim t2 As New System.Threading.Thread(AddressOf Sub2)
    4. t1.Start()
    5. t2.Start()
    6. End Sub
    7. Sub Sub1()
    8. Label6.Show() ' Das wird markiert
    9. Label4.Hide()
    10. TextBox1.Visible = False
    11. TextBox2.Visible = False
    12. PictureBox1.Visible = True
    13. PictureBox1.BringToFront()
    14. Button1.Visible = False
    15. Label1.Hide()
    16. Label3.Hide()
    17. End Sub
    18. Sub Sub2()
    19. Request
    20. End If
    21. End Sub

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „K_M_M_K“ ()