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:
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:
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:
warum funktioniert das bei dem Button und nicht bei dem Event?
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.
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?
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: