Comment convertir un code de la console en application Windows Forms

la programmation


Bonjour mes amis
J’ai un code console et je souhaite le convertir en application Windows Forms afin de créer un projet pour moi
S’il vous plaît aidez-moi
Voici le code :

C#
/*   Server Program    */
                 
using System;
using System.Text;
using System.Net;
using System.Net.Sockets;

public class serv {
    public static void Main() {
    try {
        IPAddress ipAd = IPAddress.Parse("172.21.5.99");
         // use local m/c IP address, and 
         // use the same in the client

/* Initializes the Listener */
        TcpListener myList=new TcpListener(ipAd,8001);

/* Start Listeneting at the specified port */        
        myList.Start();
        
        Console.WriteLine("The server is running at port 8001...");    
        Console.WriteLine("The local End point is  :" + 
                          myList.LocalEndpoint );
        Console.WriteLine("Waiting for a connection.....");
        
        Socket s=myList.AcceptSocket();
        Console.WriteLine("Connection accepted from " + s.RemoteEndPoint);
        
        byte[] b=new byte[100];
        int k=s.Receive(b);
        Console.WriteLine("Recieved...");
        for (int i=0;i<k;i++)
            Console.Write(Convert.ToChar(b[i]));

        ASCIIEncoding asen=new ASCIIEncoding();
        s.Send(asen.GetBytes("The string was recieved by the server."));
        Console.WriteLine("\nSent Acknowledgement");
/* clean up */            
        s.Close();
        myList.Stop();
            
    }
    catch (Exception e) {
        Console.WriteLine("Error..... " + e.StackTrace);
    }    
    }
    
}

Ce que j’ai essayé :

J’ai essayé de chercher une solution sur Google mais en vain

Solution 1

Dans votre cas, vous devez envisager un thread de travail, je recommanderais pour plus de simplicité Classe BackgroundWorker .

Le fait est que votre interface graphique se figera en raison d’une action de blocage comme vous le faites :

CSS
/* Initializes the Listener */
        TcpListener myList=new TcpListener(ipAd,8001);

/* Start Listeneting at the specified port */        
        myList.Start();

Solution 2

Solution 3

En gros, non.
Les applications console sont destinées à s’exécuter selon l’ancienne méthode traditionnelle et sont appelées « applications procédurales » : le code indique à l’utilisateur quoi faire et a le contrôle à tout moment.
Ce n’est pas le cas des applications Windows : elles répondent aux événements (qui sont très nombreux) et font des choses en conséquence – l’utilisateur est (au moins nominalement) responsable et peut faire tout ce qu’il veut dans l’ordre qui lui convient.

Alors, où ira une application console :

"Enter name:" 
"Enter address:"
"Insert to database? (Y/N): "

Une application Windows aurait deux zones de texte et un bouton “Insérer” – et l’utilisateur peut remplir ce qu’il veut et appuyer sur le bouton lorsqu’il est prêt.

Ainsi, convertir une application console vers Windows n’est pas simple et ne aboutit pas à une “bonne” application Windows – et dans votre cas, cela aboutit à une expérience très frustrante pour l’utilisateur car il ne peut pas dire si l’application est tombée en panne ou fonctionne car la majeure partie de ce que fait le code consiste à exécuter ce qu’on appelle des « appels bloquants » ; ceux qui ne reviennent que lorsque l’opération est complètement terminée, ce qui peut prendre entre quelques secondes et une éternité !

Utiliser ce code dans une application Windows qui ne sera pas désinstallée avec des préjudices extrêmes est extrêmement compliqué : vous devrez en apprendre davantage sur le threading, l’appel et sur la façon d’obtenir et de présenter des informations à l’utilisateur.

En gros, si vous souhaitez jouer avec une application de chat Windows, allez chercher une application de chat Windows – il y en a beaucoup – vous ne voulez pas démarrer à partir d’une version console !

Solution 4

using System;
using System.Windows.Forms;

namespace CustomerPaymentFormExample
{
    public partial class CustomerPaymentForm : Form
    {
        public CustomerPaymentForm()
        {
            InitializeComponent();
        }

        private void btnPay_Click(object sender, EventArgs e)
        {
            // Perform payment processing logic here
            // For example, you can validate input and process payment

            // Display a message box indicating payment success
            MessageBox.Show("Payment Successful!", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information);

            // Close the payment form dialog
            this.Close();
        }

        private void btnCancel_Click(object sender, EventArgs e)
        {
            // Close the payment form dialog without processing payment
            this.Close();
        }
    }
}

コメント

タイトルとURLをコピーしました