| |
VB.NET - Ein- und Umsteigermain() in WPF Anwendung | | | Autor: McDry | Datum: 17.09.21 17:27 |
| Liebes Forum, ich versuche Folgendes und scheitere kläglich:
Class MainWindow
Public Shared Sub main()
MsgBox("Hello there")
StartButton()
End Sub
Public Sub StartButton()
:
End Sub
End Class
Beim Aufruf von „StartButton“ in main() erscheint folgende Fehlermeldung:
„Auf einen Instanzmember einer Klasse kann nicht ohne explizite Instanz einer Klasse von einer/m freigegebenen Methode/Member aus verwiesen werden.“
Wie kann ich StartButton() in main() aufrufen? | |
Re: main() in WPF Anwendung | | | Autor: Manfred X | Datum: 18.09.21 17:45 |
| Hallo!
Eine Shared-Methode (main) existiert unabhängig von Klassen-Instanzen
als Member der Klasse selbst - nur einmal im Speicher.
"StartButton" ist eine Instanz-Methode (dem erstellten 'MainWindow' zugeordnet)
und kann deshalb nicht direkt in einer Shared-Methode gerufen werden.
Beitrag wurde zuletzt am 18.09.21 um 18:01:28 editiert. | |
Re: main() in WPF Anwendung | | | Autor: McDry | Datum: 18.09.21 19:46 |
| Hallo Manfred X, danke für die schnelle Antwort.
Dann muss ich meine Frage anders stellen: Wie schaffe ich es, dass die Instanzmethode "SartButton" automatisch ausgeführt wird, beim Starten der Applikation? | |
Re: main() in WPF Anwendung | | | Autor: Manfred X | Datum: 18.09.21 20:08 |
| Das hängt von der Funktion StartButton ab und kann nicht pauschal
beantwortet werden.
Zunächst solltest Du Dir klar machen, was genau eine Shared-Methode ist
(gültig für alle Instanzen der Klasse und über den Klassennamen allgemein
aufrufbar - analog den Funktionen in einem Modul) und was eine Instanz-Methode
ist (spezifisch für jede einzelne Instanz aufzurufen).
Entweder Du programmierst eine Klasse, packst die Methode StartButton dort
hinein und erstellst von dieser Klasse eine Instanz im Main, deren Methode
StartButton gerufen werden kann.
Oder Du machst aus StartButton eine Shared-Methode, schreibst also das
Schlüsselwort SHARED dazu. | |
Re: main() in WPF Anwendung | | | Autor: McDry | Datum: 19.09.21 11:28 |
| Hallo Manfred X,
ich muss meine Anwendung näher erklären. Wenn ich deinen Vorschlägen folge, verschiebe ich das Problem nur tiefer in meine Anwendung.
Hier die Erklärung, was ich machen will:
VB.NET, WPF-Applikation
- Auf dem Bildschirm soll eine Uhr angezeigt werden, mit animierten Zeigern, mit laufendem Sekundenzeiger.
- Die notwendeigen Funktionen dazu sind in Class MainWindow implementiert
- Im UI ist ein Button, der StartButton aufruft und dann läuft die Uhr los – soweit alles gut.
- Ich möchte aber, dass die Uhr sofort losläuft, wenn die Applikation gestartet wird (ohne Startknopf im UI).
- Daher die Idee, irgendwie in main() die Uhr zu starten, aber das gelingt mir nicht. Es sieht so aus, dass man zwar in main() eine Shared Methode aufrufen kann, aber aus dieser Shared Methode kann dann keine Instanzmethode aufgerufen werden. Auch kein Zugriff auf UI Komponenten (Canvas). | |
Re: main() in WPF Anwendung | | | Autor: Kuno60 | Datum: 19.09.21 14:12 |
| Hallo McDry,
Private Sub MainWindow_Loaded(sender As Object, e As RoutedEventArgs) Handles _
Me.Loaded
StartButton()
End Sub wenn du dieses Ereignis verwendest, wird StartButton aufgerufen, wenn das Fenster geladen wurde.
Wenn StartButton schon vor dem Laden des Fensters aufgerufen werden soll, so geht das in der Sub Main so:
Class MainWindow
<STAThread>
Public Shared Sub Main()
Dim app As New System.Windows.Application
Dim w As New MainWindow
w.StartButton()
app.MainWindow = w
app.Run(w)
End Sub
Private Sub StartButton()
My.Computer.Audio.PlaySystemSound(Media.SystemSounds.Beep)
MsgBox("Hallo du da")
End Sub
End Class | |
Re: main() in WPF Anwendung | | | Autor: McDry | Datum: 19.09.21 15:34 |
| Hallo Kuno,
vielen Dank, das ist die Lösung!
Ich habe schon so viel Zeit zu dem Thema investiert und jetzt, zack ist alles geklärt.
Wieder was gelernt.
Wie findet man denn solche Funktionen wie MainWindow_Loaded? | |
Re: main() in WPF Anwendung | | | Autor: Kuno60 | Datum: 19.09.21 15:52 |
| McDry schrieb:
Zitat: | | Wie findet man denn solche Funktionen wie
MainWindow_Loaded? | |
Wähle über dem Editor-Codefenster, in der mittleren Combobox (MainWindow Ereignisse) und wähle dann in der rechten Combobox das gewünschte Ereignis. | |
Re: main() in WPF Anwendung | | | Autor: McDry | Datum: 19.09.21 17:00 |
| Das war wohl zu naheliegend für mich ... | |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
vb@rchiv CD Vol.6 vb@rchiv Vol.6
Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
Online-Update-Funktion Entwickler-Vollversionen u.v.m.Jetzt zugreifen Tipp des Monats sevOutBar 4.0
Vertikale Menüleisten á la Outlook
Erstellen von Outlook ähnlichen Benutzer- interfaces - mit beliebig vielen Gruppen und Symboleinträgen. Moderner OfficeXP-Style mit Farbverläufen, Balloon-Tips, u.v.m. Weitere Infos
|
|
|
Copyright ©2000-2024 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|