Ich mache eine Version des Microsoft-Spiels' Minesweeper '. Ich mache die Schaltflächen und Beschriftungen programmgesteuert und fügen zwei Handler für die Schaltflächen und einen Handler für die Labels wie folgt hinzu.Durch Klicken auf das Formular kann 'Objekt des Typs' <Namespace.FormName> 'nicht in den Typ' System.Windows.FormsButton 'umgewandelt werden.
AddHandler Newbtn.MouseDown, AddressOf Button_MouseDown
AddHandler Newbtn.MouseUp, AddressOf Button_MouseUp
AddHandler Newlbl.MouseDown, AddressOf Label_MouseDown
dann habe ich drei Verfahren:
Private Sub Button_MouseUp(sender As Button, e As MouseEventArgs) Handles Me.MouseUp
Private Sub Button_MouseDown(sender As Button, e As MouseEventArgs) Handles Me.MouseDown
Private Sub Label_MouseDown(sender As Label, e As MouseEventArgs) Handles Me.MouseClick
Alles funktioniert gut, bis ich außerhalb des Gitters von Schaltflächen auf dem Formular selbst klicken, wenn ich eine ‚InvalidCastException‘ zu bekommen. VS2015 geht in einen Unterbrechungszustand. An der Spitze steht:
"Ihre Anwendung ist in einen Unterbrechungsstatus eingetreten, aber es gibt keinen Code zum Anzeigen, da alle Threads externen Code ausgeführt haben (normalerweise System- oder Framework-Code)."
Weitere Informationen: Objekt des Typs 'Mines.MineSweeperPJS' kann nicht in den Typ 'System.Windows.Forms.Button' umgewandelt werden.
Mines ist der Namespace. MineSweeperPJS ist das Formular.
Alle Vorschläge zur Ursache dieses Problems würden sehr geschätzt werden!
Vielen Dank für die Antwort sein! Ich habe die Griffe entfernt und alles funktioniert perfekt. Meine Coding-Ausbildung kommt hauptsächlich von Google, wo ich nach Dingen suche, die ich nicht kenne :) Also wurden die Prozedur-Header höchstwahrscheinlich von hier eingefügt. Ich schätze solche Seiten und die Hilfe, die ihre Teilnehmer anbieten. Pete. – Pete
Wenn ich darüber nachdenke, hast du recht, ich habe den Absender in Button und Label geändert. Einer meiner vielen Versuche, es zur Arbeit zu bringen. Ich habe auch viele Variationen an den Griffen ausprobiert, aber nie versucht, sie zu entfernen, ha :) – Pete