Checkbox abfrage. Wenn das, dann das.

  • VB.NET
  • .NET (FX) 4.0

Es gibt 14 Antworten in diesem Thema. Der letzte Beitrag () ist von mrMo.

    Checkbox abfrage. Wenn das, dann das.

    Einen wunder schönen guten Abend,

    Ich bin gerade dabei einen Arma launcher zu machen. Allerdings bleibe ich nun an einer stelle stehen.

    Mein Code.:

    VB.NET-Quellcode

    1. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    2. Dim armastart As New ProcessStartInfo
    3. If CheckBox1.Checked = True Then
    4. armastart.Arguments = "-window"
    5. Else
    6. armastart.Arguments = ""
    7. End If
    8. armastart.FileName = "arma3.exe"
    9. armastart.FileName = "arma3battleye.exe"
    10. armastart.Arguments = "-skipIntro -mod=@Exile;@Ryanzombies -connect=**.***.**.*** -port=*****"
    11. Dim proc As Process = Process.Start(armastart)
    12. End Sub


    Wie soll es sein:
    Wenn ich "-window" direkt in den armastart.Arguments hineinschreibe, Startet Arma im Fenstermodus.
    Damit ich die Funktion auch deaktivieren kann, wollte ich dies mit einer Checkbox Ein-/Ausschalten
    Es tauchen keine Fehler auf, aber sobald ich das Game starte wird "armastart.Arguments = "-window" " nicht angenommen.

    Leider finde ich keine Lösung die zu mein Problem passt.
    Darum melde ich mich nun hier und hoffe auf Hilfe.

    Mit freundlichen Grüßen:
    FroxX
    Du ersetzt den Wert des Arguments ja auch wieder in Zeile 13.

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    = schreibt den Wert in den String und ersetzt damit den vorhandenen Inhalt.

    += fügt den Wert dem String an
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen
    @mrMo
    +=

    Neeein, in VB macht man das bitte mit dem &-Operator. Unterschiede sind hier erklärt.
    Besonders für Einsteiger ist es sonst schwierig, zwischen Addition von Zahlen und Verknüpfung von Strings zu unterscheiden.
    "Luckily luh... luckily it wasn't poi-"
    -- Brady in Wonderland, 23. Februar 2015, 1:56
    Desktop Pinner | ApplicationSettings | OnUtils

    Niko Ortner schrieb:

    @mrMo
    +=

    Neeein, in VB macht man das bitte mit dem &-Operator. Unterschiede sind hier erklärt.

    Solange beide Operanden Strings sind und Option Strict On gesetzt ist, ist es völlig egal ob "+" oder "&", beide Operatoren sind als Konkatenationsoparator vorgesehen.
    Siehe auch hier: msdn.microsoft.com/en-us/library/ssh7ye8e.aspx

    Quadsoft schrieb:

    Solange beide Operanden Strings sind und Option Strict On gesetzt ist

    Aber genau da happerts bei Einsteigern ja. Da VB mit Option Strict Off als Standard daherkommt und Einsteiger halt die Datentypen noch nicht gut kennen, ist die Verwirrung groß, wenn 123 + 456 manchmal 123456 und manchmal 579 ergibt.

    Siehe auch hier: msdn.microsoft.com/en-us/library/ssh7ye8e.aspx

    Selbst ins Knie geschossen ;)

    Wenn Sie den Operator + verwenden, können Sie nicht immer bestimmen, ob eine Addition oder eine Zeichenverkettung erfolgt. Verwenden Sie für die Verkettung den Operator &, um Mehrdeutigkeiten zu vermeiden und sich selbst dokumentierenden Code zu erhalten.


    Warum in C-ähnlichen Sprachen gerne + als Stringverknüpfungsoperator verwendet wird, leuchtet mir beim besten Willen nicht ein. Stiftet nur Verwirrung. Könnte daran liegen, dass alle anderen Zeichen für andere Operatoren belegt sind (& ist üblicherweise bitweises And).
    "Luckily luh... luckily it wasn't poi-"
    -- Brady in Wonderland, 23. Februar 2015, 1:56
    Desktop Pinner | ApplicationSettings | OnUtils

    Niko Ortner schrieb:


    Neeein, in VB macht man das bitte mit dem &-Operator.


    Dooooch :)
    Zahlen werden addiert, Strings werden angefügt. Kenn das von C# so. Hatte noch die Probleme damit. Wer dirty programmiert fällt halt auf die Nase.

    Das & Nutze ich auch, jedoch nur um z.B. unterschiedliche String Variablen hintereinander zu reihen, wie z.B.
    Vorname & Name & Nikname
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen
    @FroxX Willkommen im Forum. :thumbup:
    Das kann man auch ganz elegant machen, so kannst Du beliebige Parameter zusammensetzen

    VB.NET-Quellcode

    1. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    2. Dim armastart As New ProcessStartInfo
    3. Dim wnd As String = ""
    4. If CheckBox1.Checked Then
    5. armastart.Arguments = "-window "
    6. End If
    7. armastart.FileName = "arma3.exe"
    8. armastart.FileName = "arma3battleye.exe"
    9. ' Hier wird dann "-window " oder nichts reingeschrieben
    10. armastart.Arguments = Strinf.Format("-skipIntro {0}-mod=@Exile;@Ryanzombies -connect=**.***.**.*** -port=*****", win)
    11. Dim proc As Process = Process.Start(armastart)
    12. End Sub
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @mrMo
    nur um z.B. unterschiedliche String Variablen hintereinander zu reihen

    Genau das meine ich ja. Genau da soll man den &-Operator (also Vorname & Name & Nikname) verwenden, und nicht den +-Operator (also Vorname + Name + Nikname).
    "Luckily luh... luckily it wasn't poi-"
    -- Brady in Wonderland, 23. Februar 2015, 1:56
    Desktop Pinner | ApplicationSettings | OnUtils

    Niko Ortner schrieb:

    Genau da soll man den &-Operator (also Vorname & Name & Nikname) verwenden, und nicht den +-Operator (also Vorname + Name + Nikname).


    Und wie machst du das, wenn du am Anfang einer Methode einen String deklarierst, welcher im laufe der Methode um weitere Inhalte ergänzt werden (wie hier im Thread) soll?

    z.B.
    armastart.Arguments = "bla"
    ...
    armastart.Arguments = armastart.Arguments & "blabla"

    Oder
    armastart.Arguments = "bla"
    ...
    armastart.Arguments += "blabla"
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen
    Ich denke halt mit &=, wie man es normal macht.

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    @mrMo
    Mit einem System.Text.StringBuilder.
    Oder, was mir allgemein häufiger passt:

    VB.NET-Quellcode

    1. Function Foo() As String
    2. Dim Lines As New List(Of String)
    3. For ...
    4. Lines.Add(...)
    5. Next
    6. Return String.Join(Environment.NewLine, Lines)


    Aber wie Trade schon geschrieben hat: Der &=-Operator funktioniert genauso.
    "Luckily luh... luckily it wasn't poi-"
    -- Brady in Wonderland, 23. Februar 2015, 1:56
    Desktop Pinner | ApplicationSettings | OnUtils

    Trade schrieb:

    Ich denke halt mit &=, wie man es normal macht.

    Oh, ja &= kannte ich noch nicht. Wäre dann wohl das VB.Net Pendants zu C# +=

    Danke :)
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen