Étiquettes : ,

Dans ce tutoriel nous allons configurer Visual Studio Code pour pouvoir lancer des scripts C#. Nous avons vu dans de précédent tutoriel comment utiliser VS Code pour programmer en C++ un Arduino

Installation de Visual Studio Code

Install .Net 6.0

Ouvrez ensuite Visual Studio Code

Installer l’extension C#

visual-studio-code-extension-cs Apprendre à coder en C# avec Visual Studio Code

Vérifier l’installation de .NET dans le terminal

dotnet --version

Créer une application console

Créer un nouveau projet .NET

dotnet new console -o app
cd app
code .
visual-studio-cs-project Apprendre à coder en C# avec Visual Studio Code

Sélectionnez Oui pour ajouter la configuration de compilation et de debug

Exécuter le script C# avec Visual Studio Code

Pour exécuter le code C#, vous pouvez entrer la commande suivante dans le terminal de VS Code

dotnet run

Ou sélectionnez Run > Start Debugging (F5)

visual-studio-run-cs-script Apprendre à coder en C# avec Visual Studio Code

Ajouter des librairies

Pour ajouter des librairies, vous pouvez rentrer la commande suivante en remplaçant <package_name> par le nom du paquet que vous souhaitez installer

dotnet add package <package_name> 

en option vous pouvez sélectionner la version <version_num> que vous voulez installer (ex:1.0.0)

dotnet add package <package_name>  --version <version_num>

Créer un interface graphique

Il est possible de créer une interface graphique avec C# et Visual Studio Code.

Entrez la commande suivante pour créer un nouveau projet winforms (sur Windows uniquement)

dotnet new winforms -o appgui
cd appgui
code .
visual-studio-cs-guiproject Apprendre à coder en C# avec Visual Studio Code

Visual Studio code va créer plusieurs fichiers pour définir une interface graphique. Vous allez pourvoir modifier ces trois fichiers pour développer votre interface. Nous allons voir un exemple simple avec un label et un bouton.

  • Form1Designer.cs

Ce fichier contient la définition graphique de chaque composant de l’interface et leur position.

Dans cette exemple, nous définissons un label et un bouton contenu dans un groupbox.

N.B.: Pour chaque élément, vous devez:

  • le déclarer : private System.Windows.Forms.Label label1;
  • créer une instance this.label1 = new System.Windows.Forms.Label();
  • le paramétrer (si besoin) this.label1.Text = « Hello world! »;
  • le placer dans un contenant this.grpbox.Controls.Add(this.label1);
namespace appgui;

partial class Form1
{
    /// <summary>
    ///  Required designer variable.
    /// </summary>
    private System.ComponentModel.IContainer components = null;

    /// <summary>
    ///  Clean up any resources being used.
    /// </summary>
    /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
    protected override void Dispose(bool disposing)
    {
        if (disposing && (components != null))
        {
            components.Dispose();
        }
        base.Dispose(disposing);
    }

    #region Windows Form Designer generated code

    /// <summary>
    ///  Required method for Designer support - do not modify
    ///  the contents of this method with the code editor.
    /// </summary>
    private void InitializeComponent()
    {
        this.components = new System.ComponentModel.Container();
        this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
        this.ClientSize = new System.Drawing.Size(400, 250);
        this.Text = "Form1";

        // components
        this.label1 = new System.Windows.Forms.Label();
        this.button1 = new System.Windows.Forms.Button();
        this.grpbox = new System.Windows.Forms.GroupBox();

        // label1
        this.label1.AutoSize = true;
        this.label1.Location = new System.Drawing.Point(50, 50);
        this.label1.Name = "label1";
        this.label1.Size = new System.Drawing.Size(50, 10);
        this.label1.TabIndex = 3;
        this.label1.Text = "Hello world!";
        //button1
        this.button1.Location = new System.Drawing.Point(50, 70);
        this.button1.Name = "button1";
        this.button1.Size = new System.Drawing.Size(50, 20);
        this.button1.TabIndex = 0;
        this.button1.Text = "Click!";
        this.button1.UseVisualStyleBackColor = true;
        this.button1.Click += new System.EventHandler(this.button1_Click);

        //grpbox
        this.grpbox.Controls.Add(this.label1);
        this.grpbox.Controls.Add(this.button1);
        this.grpbox.Location = new System.Drawing.Point(10, 10);
        this.grpbox.Name = "grpbox";
        this.grpbox.Size = new System.Drawing.Size(380, 230);
        this.grpbox.TabIndex = 0;
        this.grpbox.TabStop = false;
        this.grpbox.Text = "Group Box";
        
        //layout
        this.Controls.Add(this.grpbox);
        
    }

    private System.Windows.Forms.Label label1;
    private System.Windows.Forms.GroupBox grpbox;
    private System.Windows.Forms.Button button1;

    #endregion
}
  • Form1.cs

On défini dans ce fichier comment vont réagir les composants.

Dans cet exemple, lorsqu’on appuie sur le bouton une message s’affiche dans une nouvelle fenêtre

namespace appgui;

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        MessageBox.Show("Button cliked");
    }
}
  • Program.cs

Ce fichier permet de lancer l’application. Vous ne devriez pas avoir à modifier ce fichier tout de suite.

namespace appgui;

static class Program
{
    /// <summary>
    ///  The main entry point for the application.
    /// </summary>
    [STAThread]
    static void Main()
    {
        // To customize application configuration such as set high DPI settings or default font,
        // see https://aka.ms/applicationconfiguration.
        ApplicationConfiguration.Initialize();
        Application.Run(new Form1());
    }    
}

Si vous exécutez le code et appuyer sur le bouton vous devriez obtenir le résultat suivant

visual-studio-cs-gui-result Apprendre à coder en C# avec Visual Studio Code

Sources