Announcement

Collapse
No announcement yet.

Anfänger -.-

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Anfänger -.-

    Hallo, ich habe da ein kleines Problem. Ich lerne grade C# zu programieren (habe noch nie vorher Programiert ausser so kleine pilepalle Programme in C++) und ich will grade ein Programm Programieren in dem ich via Checkboxen Programme Starten kann nun ist allerdings das Problem das ich auf denn dummen Code nicht komme (warscheinlich is er zwar schlauer als ich aber ich sage mal dummer code )

    System.Diagnostics.Process(); das habe ich bisher nur weiß ich nicht wie ich das weiter einbinden soll. Sagen wir mal ich will notepad.exe öffnen. Wär nett wenn mir einer weiter helfen könnte.

    MFG Gropi

  • #2
    Hallo Gropi,
    eigentlich ganz einfach:

    1. Du brauchst eine Referenz auf System.Diagnostics , also folgendes hinzufügen:

    using System.Diagnostics;

    2.Du brauchst einen Eventhandler für Deine Checkbox. Einfach Doppelklick auf das Control im Designer und Du erhälst folgendes:

    private void checkBox1_CheckedChanged(object sender, EventArgs e)
    {
    }

    3.Du musst deine Befehl einfügen:

    private void checkBox1_CheckedChanged(object sender, EventArgs e)
    {
    Process.Start("Notepad.exe");
    }

    Im Prinzip war das alles. Aber da ich eigentlich ganz einfach geschrieben habe, hat die Sache natürlich einen Hacken. Das Ereignis lautet CheckedChanged, d.h. auch wenn Du die Markierung deiner Checkbox löschst, startet eine Instanz von Notepad. Checkboxen sind für solche Aktionen eher ungeeignet.

    Gruß Oliver

    Comment


    • #3
      Hallo,

      Das Ereignis lautet CheckedChanged, d.h. auch wenn Du die Markierung deiner Checkbox löschst, startet eine Instanz von Notepad. Checkboxen sind für solche Aktionen eher ungeeignet.
      Eine einfache "if(checkBox1.Checked)" Bedingung, würde dieses Problem ja wohl beheben!

      Process.Start("Notepad.exe");
      Bitte beachte immer, daß die statische methode "Process.Start" eine instanz von Process erzeugt und diese auch zurückggibt.
      Die Prozess Klasse implementiert IDisposable und sollte daher immer Disposed() werden.
      Ein "using"- Block nimmt dir hier die Arbeit ab try/catch/finally Blöcke zu erzeugen um auf nummer sicher zu gehen.
      Code:
      using(System.Diagnostics.Process actNodePadProcess = System.Diagnostics.Process.Start("Notepad.exe"))
      {
      }
      Grüße,

      Martin

      Comment


      • #4
        Hallo Martin,

        ich habe nie behauptet, dass ich einen solchen Code schreiben würde. Ich wollte nur die grundsätzliche Vorgehensweise bei einer solchen Fragestellung aufzeigen.

        Gruß
        Oliver

        Comment


        • #5
          ahh super ich danke euch

          Comment


          • #6
            Hallo Oliver!

            ich habe nie behauptet, dass ich einen solchen Code schreiben würde.
            Hab ich ja auch nicht behauptet! (Aber geschrieben hast du ihn genau so)

            Ich wollte dich mit meiner Ergänzung ja nicht in die Pfanne hauen.
            Der Nutzen für den Fragesteller steht hier immer im Vordergrund.

            Grüße,

            Martin

            Comment

            Working...
            X