vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#

https://www.vbarchiv.net
Rubrik: Verschiedenes / Sonstiges   |   VB-Versionen: VB2010 - VB201501.03.18
Projekt mit anderer StartForm starten

Der Tipp zeigt, wie man mittels Startparameter sein Projekt gesteuert mit einer anderen Startform starten kann.

Autor:   Dietrich HerrmannBewertung:  Views:  5.523 
ohne HomepageSystem:  Win7, Win8, Win10, Win11kein Beispielprojekt 

Das Projekt muss dazu so eingestellt sein, dass Anwendungsframework aktivieren NICHT eingestellt ist. Dann kann das Projekt mit einer SUB Main gestartet werden. Mein Code der Sub Main sieht so aus:

''' <summary>
''' Description of Start.
''' </summary>
Public Class Start
 
  <STAThread()>
  Public Shared Sub Main(ByVal args As String())
    Application.EnableVisualStyles()
    Application.SetCompatibleTextRenderingDefault(False)
 
    Dim aField() As String = {"/strtFrm="}
    Dim fField() As Form = {Form1, Form2, Form3, Form4, Form5,
      Form6, frmUnicodes, Form8, Form9, Form10,
      Form11}
    Dim fnField() As String = {Form1.Name, Form2.Name, Form3.Name, Form4.Name,
      Form5.Name, Form6.Name, frmUnicodes.Name, Form8.Name, Form9.Name, Form10.Name,
      Form11.Name}
    Dim idx As Short, nf As New Form
 
    ' Startparameter einstellen
    Dim clFeld As Array = ParseCommandLineArgs(aField)
    Dim sp() As String = Split(clFeld(0), "=")
    idx = fnField.IndexOf(fnField, sp(1))
    nf = fField(idx)
    Application.Run(nf)
  End Sub
End Class

Das bedeutet, dass in:

  • "aField" die Bezeichnung des Startparameters gespeichert wird,
  • "fField" die im Projekt vorhandenen/möglichen Formen selbst aufgeführt sind,
  • "fnField" die Namen der in fField gespeicherten Formen stellungsbezogen aufgeführt sind.

Die Funktion ParseCommandLineArgs liest die Startparameter ein (in diesem Fall ist nur einer möglich lt. aField). Dann wird mittels Split der eigentliche Parameter (Formname) ermittelt und zur Festlegung der Startform verwendet. Die Application wird dann mit der ausgewählten Form gestartet.

Ich habe in meinem Testprojekt bspw. 11 verschiedene Formen, die ich mit Startparameter vor dem Start meines Programms auswählen kann.
(Wie im obigen Code ersichtlich.)

Hier noch der Code zur Funktion ParseCommandLineArgs:

''' <summary>
''' Commandline-Argumente lesen und übernehmen
''' </summary>
''' <param name="argField">Feld der Parameterbezeichnungen /bezeichnung=</param>
''' <returns>Feld mit den Werten?</returns>
Public Function ParseCommandLineArgs(ByVal argField() As String) As Array
  Dim anz As Short = My.Application.CommandLineArgs.Count
  If anz = 0 Then ' sind Argumente vorhanden?
    Return Nothing  ' nein
  Else
    Dim cmdFeld(anz - 1) As String  ' ja
    Dim i As Short = 0
    For Each s As String In My.Application.CommandLineArgs
      cmdFeld(i) = s
      i += 1
    Next s
    Return cmdFeld
  End If
End Function



Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
 
Copyright ©2000-2024 vb@rchiv Dieter OtterAlle 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.