3 votes

C# - Mise en page du formulaire comme dans Swing de Java

J'aimerais commencer à programmer en C# (je l'ai un peu étudié dans le passé et je sais qu'il a de nombreuses similitudes avec Java).

Mais ce que j'AIME dans Java, c'est la possibilité d'agencer des composants avec du code. Je n'aime vraiment pas les concepteurs de formulaires, et pour autant que je sache, Visual Studio ne vous offre pas cette condition.

J'aimerais savoir si le C# dispose de Layout Managers ou quelque chose de similaire, car cela correspondrait beaucoup mieux à mes goûts.

TIA, André

3voto

Reed Copsey Points 315315

Cela dépend de la technologie d'interface utilisateur que vous utilisez.

WPF/Xaml et Windows Forms peuvent tous deux être réalisés entièrement en code, bien que ce soit un peu plus délicat avec WPF, car il est vraiment orienté pour être utilisé avec Xaml.

Avec les formulaires Windows, le concepteur construit le code requis (voir form.designer.cs), de sorte que vous pouvez voir exactement ce qu'il faudrait pour écrire ceci "à la main".

Pour WPF, c'est un peu plus délicat, mais toujours possible. Le livre WPF de Charles Petzold adopte en fait cette approche, et commence par une approche code-first pour construire des interfaces utilisateur WPF, puis montre plus tard comment utiliser le balisage (xaml). Ceci étant dit, l'approche Xaml est bien plus agréable et plus flexible à bien des égards que de tout faire en code.

2voto

Micah Armantrout Points 3412

Il existe des moyens d'obtenir un comportement similaire à celui de Java dans Winforms.

WPF dispose de plusieurs gestionnaires de mise en page différents, voir Docs

1voto

walther Points 7554

Personne ne vous oblige à utiliser un concepteur, vous pouvez tout coder en dur à partir de zéro. Je ne sais pas qui vous a dit que vous ne pouviez pas le faire avec Visual Studio, mais j'arrêterais d'écouter ce type.

1voto

codingbiz Points 15211

En arrière-plan, les codes de la mise en page sont générés pour vous. Vous pouvez vérifier le code dans le fichier myfile.designer.cs

L'image ci-dessous montre une mise en page dans Visual Studio :

  • A gauche : les contrôles de mise en page
  • à droite : exemple de FlowLayout comme vous l'avez en Java

enter image description here

En regardant le code, vous avez généré ces éléments pour le flowlayout. Vous pouvez donc faire d'autres contrôles comme celui-ci et apprendre comment ils sont générés.

       this.flowLayoutPanel1 = new System.Windows.Forms.FlowLayoutPanel();
        this.button1 = new System.Windows.Forms.Button();
        this.button2 = new System.Windows.Forms.Button();
        this.button3 = new System.Windows.Forms.Button();
        this.button4 = new System.Windows.Forms.Button();
        this.flowLayoutPanel1.SuspendLayout();
        this.SuspendLayout();
        // 
        // flowLayoutPanel1
        // 
        this.flowLayoutPanel1.Controls.Add(this.button1);
        this.flowLayoutPanel1.Controls.Add(this.button2);
        this.flowLayoutPanel1.Controls.Add(this.button3);
        this.flowLayoutPanel1.Controls.Add(this.button4);
        this.flowLayoutPanel1.FlowDirection = System.Windows.Forms.FlowDirection.LeftToRight;
        //Other directions: BottomUp, RightToLeft, TopDown

        this.flowLayoutPanel1.Location = new System.Drawing.Point(12, 42);
        this.flowLayoutPanel1.Name = "flowLayoutPanel1";
        this.flowLayoutPanel1.Size = new System.Drawing.Size(200, 71);
        this.flowLayoutPanel1.TabIndex = 0;

Mais le designer vous fera gagner du temps.

0voto

Bob Sinclar Points 1155

Consultez System.Windows.Forms pour les tâches non web

De même, System.drawing et system.text peuvent être intéressants, mais la plupart des éléments de l'interface utilisateur se trouvent dans system.Windows.forms.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X