C# Windows Form
Fermé
Priigame
-
12 févr. 2018 à 14:48
Whismeril Messages postés 19027 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 24 avril 2024 - 13 févr. 2018 à 18:45
Whismeril Messages postés 19027 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 24 avril 2024 - 13 févr. 2018 à 18:45
A voir également:
- C# Windows Form
- Clé windows 10 gratuit - Guide
- Windows 10 gratuit - Guide
- Windows 12 - Guide
- Windows ne démarre pas - Guide
- Windows 10 iso - Guide
3 réponses
Whismeril
Messages postés
19027
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
24 avril 2024
931
12 févr. 2018 à 20:03
12 févr. 2018 à 20:03
Whismeril
Messages postés
19027
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
24 avril 2024
931
13 févr. 2018 à 09:08
13 févr. 2018 à 09:08
Et bien pour commencer, comme écrit dans l’article, il manque ce que tu as tenté.
A défaut, puisque le mode console fonctionne, au moins ce code.
Ceci afin d’avoir une idée de ton niveau, parce que dans la dizaines de solutions qui me viennent à l’esprit, il doit y en avoir que tu n’as pas encore vu.
A défaut, puisque le mode console fonctionne, au moins ce code.
Ceci afin d’avoir une idée de ton niveau, parce que dans la dizaines de solutions qui me viennent à l’esprit, il doit y en avoir que tu n’as pas encore vu.
Je fais de la programmation depuis Septembre donc assez léger le niveau mais cela m'intéresse.
Le code en console n'est pas que de moi, j'avais juste à le compléter et comprendre son fonctionnement sur les grandes lignes, je le rajoute quand même au cas ou.
Malheureusement , je ne pense pas que ça aiderai à déterminer mon niveau.
Je pense avoir trouver une solution:
String = String + Environnement.NewLine + NewString;
Je testerai plus tard si cela fonctionne.
Explications:
Le code n'est clairement pas optimiser, il as été compléter en "tâtonnant" et on avait du temps à tuer.
Il devait également afficher les derniers messages sur une page web via un serveur exécuter dans le code, partie que je n'utilise pas pour le passage en Winforms.
Le code en console n'est pas que de moi, j'avais juste à le compléter et comprendre son fonctionnement sur les grandes lignes, je le rajoute quand même au cas ou.
Malheureusement , je ne pense pas que ça aiderai à déterminer mon niveau.
Je pense avoir trouver une solution:
String = String + Environnement.NewLine + NewString;
Je testerai plus tard si cela fonctionne.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Net.Sockets; using System.Net; namespace TP4 { class Program { static UdpClient sockUdp; static HttpListener Serveurweb ; static String[] MessageTab = new String[10]; static void Main(string[] args) { String Pseudo = "", Message = ""; Console.Write("Saisir votre pseudo: "); Pseudo = Console.ReadLine(); System.Threading.Thread.Sleep(100); Console.Write("█"); System.Threading.Thread.Sleep(100); Console.Write("███"); System.Threading.Thread.Sleep(100); Console.Write("███"); System.Threading.Thread.Sleep(100); Console.Write("████"); System.Threading.Thread.Sleep(100); Console.Write("██"); System.Threading.Thread.Sleep(100); Console.Write("███"); System.Threading.Thread.Sleep(200); Console.Write("██"); System.Threading.Thread.Sleep(300); Console.Write("███"); System.Threading.Thread.Sleep(100); Console.Write("██"); System.Threading.Thread.Sleep(200); Console.Write("██████"); Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine(" 100%"); Console.WriteLine(""); Console.WriteLine("Vous êtes connecté en tant que: " + Pseudo); Console.ResetColor(); Console.WriteLine("Appuyer sur Entrer pour autoriser la saisie"); ConnectUdp(); WebUdp(); sockUdp.BeginReceive(new AsyncCallback(ReceptionUdp),null); Serveurweb.BeginGetContext(new AsyncCallback(ReceptionDmdWeb),null) ; do { if (Console.ReadKey().Key == ConsoleKey.Enter) { Console.Write("Vous: "); Message = Console.ReadLine(); EmissionUdp(Message, Pseudo); } } while (Message != "Exit"); } static void EmissionUdp(string Message, string Pseudo) { Byte[] TrameEmission=Encoding.ASCII.GetBytes(Pseudo + ": " + Message); sockUdp.Send(TrameEmission,TrameEmission.Length, new IPEndPoint(IPAddress.Parse("239.54.55.57"), 8800)); } static void ConnectUdp() { sockUdp = new UdpClient(8800, AddressFamily.InterNetwork); sockUdp.JoinMulticastGroup(IPAddress.Parse("239.54.55.57")); sockUdp.MulticastLoopback = false; } static void WebUdp() { Serveurweb = new HttpListener(); Serveurweb.Prefixes.Add("http://+:80/Temporary_Listen_Addresses/MesPages/"); Serveurweb.Start(); } static void ReceptionUdp(IAsyncResult MsgRecu) { //Recuperation de la trame recue (message et caracterre emetteur) IPEndPoint equipementdistant = new IPEndPoint(IPAddress.Any, 0); byte[] Trame = sockUdp.EndReceive(MsgRecu, ref equipementdistant); //Mise sous la forme d'une chaine de caractere String S = Encoding.ASCII.GetString(Trame); MessageTab[9] = MessageTab[8]; MessageTab[8] = MessageTab[7]; MessageTab[7] = MessageTab[6]; MessageTab[6] = MessageTab[5]; MessageTab[5] = MessageTab[4]; MessageTab[4] = MessageTab[3]; MessageTab[3] = MessageTab[2]; MessageTab[2] = MessageTab[1]; MessageTab[1] = MessageTab[0]; MessageTab[0] = Convert.ToString(S); //foreach (string s in MessageTab) Console.WriteLine(S); //On re-arme la reception pour la fois suivante sockUdp.BeginReceive(new AsyncCallback(ReceptionUdp), null); } static void ReceptionDmdWeb(IAsyncResult DemandeHttp) { int incr=0; HttpListenerContext context = Serveurweb.EndGetContext(DemandeHttp); HttpListenerResponse response = context.Response; //Recuperation du flux de sortie System.IO.Stream output = response.OutputStream; for (incr = 0; incr < 9; incr++) { byte[] Message = Encoding.ASCII.GetBytes("<B>" + MessageTab[incr] + "</B></BR>"); output.Write(Message, 0, Message.Length); } output.Close(); //On re arme l’ecoute pour les requetes suivantes Serveurweb.BeginGetContext ( new AsyncCallback(ReceptionDmdWeb), null) ; } } }
Explications:
Le code n'est clairement pas optimiser, il as été compléter en "tâtonnant" et on avait du temps à tuer.
Il devait également afficher les derniers messages sur une page web via un serveur exécuter dans le code, partie que je n'utilise pas pour le passage en Winforms.
EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI Merci d'y penser dans tes prochains messages. |
Whismeril
Messages postés
19027
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
24 avril 2024
931
13 févr. 2018 à 10:07
13 févr. 2018 à 10:07
Ok,
Effectivement
est une solution, cependant au debut tu auras: rien + nouvelle ligne + nouveau texte => donc une ligne vide.
Du coup, il vaut mieux faire
Tu peux aussi regarder la classe stringBuilder, ou string.Join().
Sinon, le textbox est imposé ou c’est un choix?
Effectivement
MonTextBox.Text = MonTextBox.Text + Environnement.NewLine + "Nouveau texte"
est une solution, cependant au debut tu auras: rien + nouvelle ligne + nouveau texte => donc une ligne vide.
Du coup, il vaut mieux faire
MonTextBox.Text = MonTextBox.Text + "Nouveau texte" + Environnement.NewLine
Tu peux aussi regarder la classe stringBuilder, ou string.Join().
Sinon, le textbox est imposé ou c’est un choix?
Whismeril
Messages postés
19027
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
24 avril 2024
931
13 févr. 2018 à 18:45
13 févr. 2018 à 18:45
La listbox serait plus adaptée.
Il suffit d’ajouter un item, dans la collecrion items
Il suffit d’ajouter un item, dans la collecrion items
13 févr. 2018 à 08:53
Oui et ? Je n'ai pas compris l’intérêt de m'envoyer ce liens :/
Je demande juste une idée de solution permettant d'afficher un historique de chaine de caractère dans une textbox avec pour seul règle 1 chaine par ligne.
Si il manque quelque chose, il serait plus judicieux de le dire.
merci d'avance.