Comment faire clignoter le texte dans la console en utilisant C#?Texte clignotant en C#
Répondre
personne-b était sur la bonne voie, mais leur code a besoin de quelques changements:
static void Main()
{
string txt = "Hello, world!";
while (true)
{
WriteBlinkingText(txt, 500, true);
WriteBlinkingText(txt, 500, false);
}
}
private static void WriteBlinkingText(string text, int delay, bool visible)
{
if (visible)
Console.Write(text);
else
for (int i = 0; i < text.Length; i++)
Console.Write(" ");
Console.CursorLeft -= text.Length;
System.Threading.Thread.Sleep(delay);
}
EDIT: Refonte un peu le code
Tah! J'étais un peu pressé plus tôt, merci pour le refactoring. Je pensais avoir un bool bien visible mais j'ai décidé de trouver une solution rapide qui pourrait ne pas fonctionner. Quoi qu'il en soit, +1 de moi. –
np :-) Le problème principal était que vous deviez appeler sleep et ajuster le curseur après avoir écrit les deux fois, sinon il sera toujours visible ou toujours caché. –
Merci Matthew et person-b, ça marche maintenant :) – nikky
string txt = "Hello, world!";
while (doingSomething)
{
Console.Write(txt);
System.Threading.Thread.Sleep(20);
Console.CursorLeft -= txt.Length;
for (int i = 0; i < txt.Length; i++)
Console.Write(" ");
}
ce code ne fait pas clignoter si
J'ai répondu dans ma réponse originale. –
Il n'y a pas un soutien direct, vous devez remplacer le texte avec des espaces (ou en différentes couleurs) sur la base d'une minuterie.
J'amélioré le code de Matthew un peu en utilisant \r
et certains utilisation de fantaisie String
:
static void Main()
{
string txt = "Hello, world!";
WriteBlinkingText(txt, 500);
}
private static void WriteBlinkingText(string text, int delay)
{
bool visible = true;
while (true)
{
Console.Write("\r" + (visible ? text : new String(' ', text.Length)));
System.Threading.Thread.Sleep(delay);
visible = !visible;
}
}
Je pense aussi que le WriteBlinkingText
méthode doit être autonome, de sorte que la boucle est à l'intérieur, mais qui est juste une question de goût personnel, je pense :)
private void timer1_Tick(object sender, EventArgs e)//This might work better for you :)
{
Random rand = new Random();
for (int i = 0; i < 255; i++)
{
int A = rand.Next(i);
int R = rand.Next(i);
int G = rand.Next(i);
int B = rand.Next(i);
label2.ForeColor = Color.FromArgb(A, R, G, B);
}
}
Pour ce faire, vous devrez utiliser:
console.clear
qui effacera toutes les informations dans la console, mais vous permettra de simuler un texte clignotant, en faisant le code suivant, vous pouvez le faire: (Ceci est en VB mais son facile à traduire)
Dim Flash As Integer
Flash = 0
While Flash < 100 (Any number can be put here for duration)
Flash = Flash + 1
console.Backgroundcolor = consolecolor.Black
console.clear
system.threading.thread.sleep(25)
console.Backgroundcolor = consolecolor.White
console.clear
system.threading.thread.sleep(25)
End While
Et cela donnerait un écran clignotant par exemple, pour le texte clignote régler simplement:
Dim FlashWord As Integer
FlashWord = 0
While FlashWord < 100 (Any number can be put here for duration)
FlashWord = FlashWord + 1
console.Foregroundcolor = consolecolor.Black
console.clear
Console.Writeline("Hello World")
system.threading.thread.sleep(25)
console.Foregroundcolor = consolecolor.White
console.clear
Console.Writeline("Hello World")
system.threading.thread.sleep(25)
End While
Et cela simulent « clignote », le seul inconvénient est que vous perdez vos informations précédente à l'écran, mais rien d'autre, et pour un effet c'est plutôt bien!
- 1. menu déroulant « clignotant » dans IE6
- 2. textflow clic droit curseur clignotant
- 3. Menu texte simple en C++
- 4. objet div clignotant à plusieurs reprises
- 5. Images de texte animé en C
- 6. C# définir un texte en 2 couleurs
- 7. Affichage d'un texte Unicode en C#
- 8. Making texte en gras en utilisant Writer flux en C#
- 9. Imprimer du texte en couleur sur la console en C++
- 10. Comment mettre en évidence le texte en PDF WinForms C#
- 11. Comment récupérer du texte sélectionné en utilisant Regex en C#?
- 12. iPhone SDK: Configuration d'une animation pour créer un effet clignotant
- 13. faire de la zone d'image html 'coord' clignotant ou lueur ...
- 14. Div caché clignotant lors du chargement de la page
- 15. Flex: Comment savoir si TextArea a le curseur clignotant
- 16. div cacher et montrer javascript ayant problème clignotant dans mozilla
- 17. Comment faire une div avec un curseur clignotant et un texte modifiable sans utiliser <input>?
- 18. En-tête de l'onglet Clignotant lors de la réception de l'événement
- 19. Liaison de format de zone de texte personnalisée en C#
- 20. Comment dessiner du texte en utilisant OpenGL, SDL et C++?
- 21. C#: programme en forme de queue pour le fichier texte
- 22. Comment afficher un texte caché en utilisant C#
- 23. Alignement du texte sur l'infobulle de OwnerDraw en C#/.NET
- 24. Comment créer un fichier texte temporaire en C++?
- 25. Importer un fichier texte au format bizarre en C#
- 26. C# DataGridView Texte en couleur d'une seule ligne
- 27. Meilleure méthode d'analyse de fichiers texte en C#?
- 28. C# - Ecrire un journal en utilisant une zone de texte
- 29. multiligne Modèle de contrôle de texte en C#
- 30. Obtenez le texte de la liste déroulante en C#
Légèrement sans rapport: c'est sûrement un cauchemar d'utilisabilité. Je déconseillerais fortement. –
D'accord. Ne fais pas ça, ça fait pleurer les gens. –