Laden...

Wie programmier ich einen Button in WinForms?

Erstellt von Lucius vor 3 Jahren Letzter Beitrag vor 3 Jahren 821 Views
Thema geschlossen
L
Lucius Themenstarter:in
18 Beiträge seit 2020
vor 3 Jahren
Wie programmier ich einen Button in WinForms?

Hallo zusammen, ich würde mir gerne ein kleines Tool per WinForms basteln, das mir meine Youtube Video hochlädt.
Da ich etwas aus der C# Programmierung raus bin und auch nicht mehr weiß wie man eine Methode oder Funktion
über ein Button aufrufen kann, hoffe ich, ihr könnt mir weiterhelfen...

Eigentlich ganz simpel, ich möchte diesen Code über ein button Aufrufen können,
ich weiß das sollte Grundlage sein, aber wie gesagt es ist etwas her. Dieser Code ist mehr für die Console gemacht wurden, sollte allerdings auch umgebaut werden können.

Ich brauche nur ein tipp für den Anfang, dann kann ich mich weiter vertiefen.


using System;
using System.IO;
using System.Reflection;
using System.Threading;
using System.Threading.Tasks;

using Google.Apis.Auth.OAuth2;
using Google.Apis.Services;
using Google.Apis.Upload;
using Google.Apis.Util.Store;
using Google.Apis.YouTube.v3;
using Google.Apis.YouTube.v3.Data;

namespace Google.Apis.YouTube.Samples
{
  /// <summary>
  /// YouTube Data API v3 sample: upload a video.
  /// Relies on the Google APIs Client Library for .NET, v1.7.0 or higher.
  /// See https://developers.google.com/api-client-library/dotnet/get_started
  /// </summary>
  internal class UploadVideo
  {
    [STAThread]
    static void Main(string[] args)
    {
      Console.WriteLine("YouTube Data API: Upload Video");
      Console.WriteLine("==============================");

      try
      {
        new UploadVideo().Run().Wait();
      }
      catch (AggregateException ex)
      {
        foreach (var e in ex.InnerExceptions)
        {
          Console.WriteLine("Error: " + e.Message);
        }
      }

      Console.WriteLine("Press any key to continue...");
      Console.ReadKey();
    }

    private async Task Run()
    {
      UserCredential credential;
      using (var stream = new FileStream("client_secrets.json", FileMode.Open, FileAccess.Read))
      {
        credential = await GoogleWebAuthorizationBroker.AuthorizeAsync(
            GoogleClientSecrets.Load(stream).Secrets,
            // This OAuth 2.0 access scope allows an application to upload files to the
            // authenticated user's YouTube channel, but doesn't allow other types of access.
            new[] { YouTubeService.Scope.YoutubeUpload },
            "user",
            CancellationToken.None
        );
      }

      var youtubeService = new YouTubeService(new BaseClientService.Initializer()
      {
        HttpClientInitializer = credential,
        ApplicationName = Assembly.GetExecutingAssembly().GetName().Name
      });

      var video = new Video();
      video.Snippet = new VideoSnippet();
      video.Snippet.Title = "Default Video Title";
      video.Snippet.Description = "Default Video Description";
      video.Snippet.Tags = new string[] { "tag1", "tag2" };
      video.Snippet.CategoryId = "22"; // See [url]https://developers.google.com/youtube/v3/docs/videoCategories/list[/url]
      video.Status = new VideoStatus();
      video.Status.PrivacyStatus = "unlisted"; // or "private" or "public"
      var filePath = @"REPLACE_ME.mp4"; // Replace with path to actual movie file.

      using (var fileStream = new FileStream(filePath, FileMode.Open))
      {
        var videosInsertRequest = youtubeService.Videos.Insert(video, "snippet,status", fileStream, "video/*");
        videosInsertRequest.ProgressChanged += videosInsertRequest_ProgressChanged;
        videosInsertRequest.ResponseReceived += videosInsertRequest_ResponseReceived;

        await videosInsertRequest.UploadAsync();
      }
    }

    void videosInsertRequest_ProgressChanged(Google.Apis.Upload.IUploadProgress progress)
    {
      switch (progress.Status)
      {
        case UploadStatus.Uploading:
          Console.WriteLine("{0} bytes sent.", progress.BytesSent);
          break;

        case UploadStatus.Failed:
          Console.WriteLine("An error prevented the upload from completing.\n{0}", progress.Exception);
          break;
      }
    }

    void videosInsertRequest_ResponseReceived(Video video)
    {
      Console.WriteLine("Video id '{0}' was successfully uploaded.", video.Id);
    }
  }
}

Liebe Grüße
Lucius

16.806 Beiträge seit 2008
vor 3 Jahren

Was ist denn Deine Frage? Wie Du ein Button programmierst? Das kannst ja einfach der Doku entnehmen.
Button-Steuerelement - Windows Forms .NET Framework

Wenn man programmieren will, dann muss man schon nen bisschen aus eigenem Willen was lesen und ausprobieren 😉
Hast Du ein konkretes Problem oder eine konkrete Frage, dann stell sie bitte.

PS: ich hab auch den Titel angepasst, weil es hier ja um den Button in WinForms geht und YouTube für die Frage ja irrelevant ist.

D
2 Beiträge seit 2020
vor 3 Jahren
Windows Forms-Schaltfläche

Hallo überhaupt

Dies ist wahrscheinlich eine dumme Frage, aber ich habe jetzt eine Stunde lang gesucht und Google hilft auch nicht.

Ich bin normalerweise Code SPS-Software. Aber um wieder auf mein Niveau in OOP zu kommen, habe ich beschlossen, mich zu einem kleinen Hilfswerkzeug in C # zu machen.

Früher habe ich mit scharfer Entwicklung dafür gearbeitet, aber ich habe mich entschieden, das visuelle Studio herunterzuladen.

Nachdem ich einige Konsolentestprogramme erstellt hatte, entschied ich mich jedoch, mit dem eigentlichen Forms-Programm zu beginnen. Und ich wollte wie gewohnt mit einem Projekt mit einer Schaltfläche und einer bevorstehenden Nachrichtenbox beginnen. Aber ich kann die Schaltfläche in der Toolbox-Liste nicht finden.

Jetzt lautet die Frage: Bin ich blind (wie gesagt: Ich habe eine Stunde lang gesucht), gibt es im Visual Studio keine Schaltflächen oder muss ich etwas tun?

Hoffe jemand kann mir helfen.

L
Lucius Themenstarter:in
18 Beiträge seit 2020
vor 3 Jahren

Hallo Apt. Vielleicht hast du meine Frage ja nicht ganz verstanden.
Ich möchte den Oben geposteten Code in einer Windows Form einbauen und zur Funktion bringen.

Meine Frage ist:
Wie kann ich den Oben genannten Code über ein Button Ausführen?

190 Beiträge seit 2012
vor 3 Jahren
  • Wer lesen kann, ist klar im Vorteil
  • Meistens sitzt der Fehler vorm Monitor
  • "Geht nicht" ist keine Fehlermeldung!
  • "Ich kann programmieren" != "Ich habe den Code bei Google gefunden"

GidF

4.931 Beiträge seit 2008
vor 3 Jahren

Nachdem ich einige Konsolentestprogramme erstellt hatte, entschied ich mich jedoch, mit dem eigentlichen Forms-Programm zu beginnen. Und ich wollte wie gewohnt mit einem Projekt mit einer Schaltfläche und einer bevorstehenden Nachrichtenbox beginnen. Aber ich kann die Schaltfläche in der Toolbox-Liste nicht finden.

Jetzt lautet die Frage: Bin ich blind (wie gesagt: Ich habe eine Stunde lang gesucht), gibt es im Visual Studio keine Schaltflächen oder muss ich etwas tun?

Hast du denn auch ein Windows Forms Projekt erstellt (statt einer Konsolenanwendung)?
Dann sollte dort auch gleich schon das Formular Form1 existieren, bei dem du dann die Designeransicht aufrufen kannst -> und dann dort aus der ToolBox den Button auswählen und auf der Form platzieren. Mittels Doppelklick auf diesen erstellten Button wird dann auch gleich die passende Click-Ereignismethode erstellt.

L
Lucius Themenstarter:in
18 Beiträge seit 2020
vor 3 Jahren

Hallo Wilfried, wem soll die Verlinkung helfen?

PS. Ich kann nicht verstehen, wie man bitte die Überschrift meines Beitrages ändern kann ohne dazu noch was zu sagen!
Dieser Titel ist echt ne Frechheit: Wie programmier ich einen Button in WinForms? Was hab denn bitte meine Frage mit nur einen Button zu tun?

D
261 Beiträge seit 2015
vor 3 Jahren

Wie kann ich den Oben genannten Code über ein Button Ausführen?

Indem du den Aufruf aus deiner Main Methode in den Click Eventhandler deines Buttons einfügst und die statischen Methoden-Aufrufe auf Console daraus entfernst.
Alles weitere lässt sich über Anleitungen und Tutorials rausfinden.

PS. Ich kann nicht verstehen, wie man bitte die Überschrift meines Beitrages ändern kann ohne dazu noch was zu sagen!
Dieser Titel ist echt ne Frechheit: Wie programmier ich einen Button in WinForms? Was hab denn bitte meine Frage mit nur einen Button zu tun?

...
Eigentlich ganz simpel, ich möchte diesen Code über ein button Aufrufen können,
...

Du hast selbst geschrieben, dass es um "ein" Button geht. Ob dabei dein YouTube Code oder Code für Vimeo aufgerufen wird, ist doch bei deiner Frage irrelevant.

16.806 Beiträge seit 2008
vor 3 Jahren

Guten Morgen Lucius,

ich muss Dich leider enttäuschen; aber myCSharp ist kein Platz, an dem Du Deinen Alltagsfrust entladen kannst - da bist Du hier leider falsch.
Ein Forum basiert darauf, dass freiwillige Helfer Dich unengeltlich unterstützen ein Problem zu lösen.

Wenn Deine Reaktion ist, dass Du hier pampig mit 180 Puls die Leute anschautzt, die versuchen Dir zu helfen, dann bist Du hier falsch; dann such Dir bitte einen anderen Ort.
Alternativ pass bitte Deinen Tonfall an. Geh vorher spazieren oder hör Dir einfach 3 Stunden Walgesang an, um zu entspannen.

Hallo Wilfried, wem soll die Verlinkung helfen?

Dir. Einzig und allein Dir.

Du stellst eine Frage, die heutzutage in den meisten Gymnasien in der siebten Klasse in der ersten Programmier-Stunde behandelt werden und zu den absoluten Basics von Windows Forms gehören. Das hast Du Dir ja bereits selbst eingestanden, dass Du bereits weißt, dass dies zu den Grundlagen gehört.
Entsprechend hast Du Hilfe erhalten, wo Du nachlesen kannst, wie man einen Button programmiert und Deine Methode aufruft.

Aber vermutlich hast Du die Links nicht mal angeschaut, sonst hättest Du entsprechend die Code-Beispiele hinter den Links gesehen, die exakt Deiner doch recht dürftigen Fragestellung entsprechen.

(...)nicht mehr weiß wie man eine Methode oder Funktion
über ein Button aufrufen kann, hoffe ich, ihr könnt mir weiterhelfen...

Eigentlich ganz simpel, ich möchte diesen Code über ein button Aufrufen können,(...)

Was hab denn bitte meine Frage mit nur einen Button zu tun?

Du fragst in Deinem Eingangspost danach, wie man eine Methode über einen Button aufruft.
Dieses Thema wird in der Schule und in den Grundlagenthemen in der Kategorie "Wie programmiert man einen Button?" behandelt - entsprechend habe ich den Titel, wie zu lesen ist, entsprechend angepasst. Denn der usprpüngliche Titel "YouTube Upload mit Windows Forms" hat mit der Aussage, dass Du nicht verstehst, wie man eine Methode über einen Button aufruft nichts, aber auch gar nichts zutun. Nicht mit einem Satz verlierst Du eine Frage, die mit dem YouTube Upload (dessen Code Du einfach von den Google Docs kopiert und 2-3 sstellen namentlich geändert hast) zutun hat. Was hat das also im Titel zu suchen?
Dass Du nun behauptest, dass es dazu kein Hinweis gab: auch hier hast Du offenbar nicht lesen wollen.

Dass Du mir nun per privater Nachricht völlig entzürnt schreibst, dass ich Dich fragen muss, bevor ich den Titel änder: gehts noch?
Nein, so läuft das hier nicht - tut mir leid 🙂

Wie gesagt:

Hast Du ein konkretes Problem oder eine konkrete Frage, dann stell sie bitte.

[Hinweis] Wie poste ich richtig? Punkt 5

PS: Mein Name Abt hat 3 Buchstaben; dafür meinen Respekt, dass Du es trotzdem geschafft hast, ihn entsprechend falsch zu schreiben.
Hat evtl. auch was mit dem hastigen Überlesen zutun 🙂

190 Beiträge seit 2012
vor 3 Jahren

Lucius, dir sollen die Links helfen.
Du hast gefragt:

Wie kann ich den Oben genannten Code über ein Button Ausführen?

Ich kann dir nur so antworten, wie ich deine Frage verstanden habe.
Wenn dir die Antwort nicht hilft, dann mußt du dein Frage präzisieren, aber mich nicht anmachen.

  • Wer lesen kann, ist klar im Vorteil
  • Meistens sitzt der Fehler vorm Monitor
  • "Geht nicht" ist keine Fehlermeldung!
  • "Ich kann programmieren" != "Ich habe den Code bei Google gefunden"

GidF

L
Lucius Themenstarter:in
18 Beiträge seit 2020
vor 3 Jahren

Entschuldige mal, erstmal verstehe ich nicht warum du hier meine Privaten Nachrichten veröffentlichst, schonmal was von Datenschutz gehört? Ich finde es echt unverschämt solch eine Äußerung zu tätigen, das man dies und das oder das ja gelernt haben muss. Trauriges Deutschland! Ich finde das ein Forum auch dazu dient natürlich unentgeltlich wenn man sich schon dafür entscheidet ein Forum zu Gründen so gut wie es geht zu Helfen und vielleicht Anfängern den Weg zur Programmierung zu erleichtern. Und Ja, wenn mein Thema soweit weg gewesen ist, was ich geschrieben habe, obwohl das nicht direkt auf dem Button bezogen war, sondern die frage wegen der Consolen Anwendung als Beispiel genommen wurde, kann man zu mindestens fragen wie man die Frage genau meint die man nicht verstanden hat! Normalerweise mach ich mir aus solchen aussagen nichts, nur geht mir das gewaltig gegen strich, wenn man sich in der Öffentlichkeit so verhält und nicht mal dazu stehen kann, das man vielleicht voreilig den Posttitel geändert hat.

Und wenn ich dir per Privater Nachricht schreibe, dann kannst du mir diese dinge auch Privat zu kommen lassen, ich finde das hat was mit anstand zu tun.
Ich habe jetzt von diesem ganzen ein Screenshot gemacht und überlege mir, wegen der Datenschutzverletzung Rechtliche Schritte in Erwägung zu Ziehen.

Hier werde hier das Posten unterlassen.

Mfg
Lucius

16.806 Beiträge seit 2008
vor 3 Jahren

Entschuldige mal, erstmal verstehe ich nicht warum du hier meine Privaten Nachrichten veröffentlichst, schonmal was von Datenschutz gehört?

Habe entsprechend dem "Datenschutz" (der ist eigentlich für andere Dinge wie persönliche Infos verantwortlich) keine private Nachricht veröffentlicht, sondern dich zitiert, was in diesem Fall mein Recht ist.
Du hast schließlich eine private Nachricht an mich direkt gerichtet und nicht an das Team. Hättest Du eine Team-Nachricht verwendet, würde das anders aussehen.
Hättest Dich mal vorher informiert statt mit Parolen durch die Gegend zu werfen 🙂

Und da Du nun anfängst zu drohen, mach ich hier mal dicht und lege Dir nahe Dir einen neuen Kindergartenspielplatz zu suchen.

Das Thema Anstand solltest eventuell mal selbst reflektieren; hier im Forum und vermutlich auch charakterlich 🙂

Thema geschlossen