vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Erstellen von dynamischen Kontextmen?s - wann immer Sie sie brauchen!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück
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:     [ Jetzt bewerten ]Views:  5.561 
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

Dieser Tipp wurde bereits 5.561 mal aufgerufen.

Voriger Tipp   |   Zufälliger Tipp   |   Nächster Tipp

Über diesen Tipp im Forum diskutieren
Haben Sie Fragen oder Anregungen zu diesem Tipp, können Sie gerne mit anderen darüber in unserem Forum diskutieren.

Neue Diskussion eröffnen

nach obenzurück


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.
 
   

Druckansicht Druckansicht 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