Neue Form nicht richtig angezeigt.

arkanoid

Mitglied
Hallo zusammen,

Ich schreibe ein Programm, welches zur Laufzeit unten rechts auf dem Bildschirm Nachrichten ausgeben soll.
Ich habe mir für die Ausgabe eine neue Form angelegt, die ich AlertForm genannt habe.

Nun habe ich auf meine MainForm einen Button hinterlegt, mit folgendem EventHandle:
Code:
    Private Sub Btn_Test_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btn_Test.Click
        c.Watch()
        Dim _AlertForm As AlertForm = New AlertForm()
        With _AlertForm
            .Left = Screen.PrimaryScreen.Bounds.Width - .Width
            .Top = rect.Height - .Height
            .Lbl_Caller.Text = ""
            .Show()
        End With
    End Sub

bei c handelt es sich hierbei um eine Client-Klasse, die einen Server abhorcht und bei Nachrichten ein Ereigniss auswirft, welches ich wie folgt abfange:

Code:
    Private Sub getCall(ByVal msg As String) Handles c.ReceivingCall
        Dim a As New nf_CallAlert.AlertForm
        With a
            .Left = Screen.PrimaryScreen.Bounds.Width - .Width
            .Top = rect.Height - 5 - .Height * 2
            .Lbl_Caller.Text = "TEST!"
            .Show()
        End With
    End Sub

Der Server ist so eingestellt, dass er direkt nach dem Button-Click direkt eine Nachricht absendet, so dass auch automatisch mit dem Button-Click ein Event abgefangen wird.
Das passiert ja auch richtig. Die beiden Forms sollten nun übereinander angezeigt werden.
Nur wird bei der Form, die aus dem getCall-Sub aufgerufen wird, sämtliche Elemente, die auf der Form abgelegt sind, durchsichtig angezeigt, so dass ich quasi hinter die Form schauen kann.
Im Form Designer liegt bei der Form auch ein Timer bei, der im FormLoad-Event gestartet wird und nach 3 sek die Form wieder schließt, was er aber nur bei der Form tut, die
über den Button generiert wurde.

AlterForm hat folgenden Code:
Code:
Public Class AlertForm

    Public Sub New()

        ' This call is required by the Windows Form Designer.
        InitializeComponent()

        ' Add any initialization after the InitializeComponent() call.

    End Sub

    Private Sub AlertForm_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        CloseTimer.Start()
    End Sub

    Private Sub CloseTimer_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CloseTimer.Tick
        Me.Close()
    End Sub

End Class

warum funktioniert das bei dem Button und nicht bei dem Event? :confused:

es hat auch nichts damit zu tun, dass es durch den button schon mal aufgerufen wird... wenn ich das auskommentiere, zeigt der das immer noch nicht an.
 
Zuletzt bearbeitet:
Zurück