6
votes

C # est là un moyen de définir la position de défilement d'une application de console

Bonjour, je suis googling cette question pendant un certain temps et je ne peux pas trouver de résultats sur la façon dont j'allais faire cela. J'ai actuellement un menu de sélection que l'utilisateur peut sélectionner une liste d'options à partir de ce qui commence à partir du haut, mais la fenêtre affiche les dernières options à chaque fois que je rafraîchis la liste. Tout ce que je veux faire, c'est pouvoir afficher la ligne avec l'option sélectionnée dans la fenêtre.

Toutes les idées seront appréciées.


2 commentaires

J'ai utilisé la console.Sewindowposition et je peux l'obtenir pour faire ce que je veux pour les quelques derniers mois, il s'arrête juste.


J'ai résolu le problème que j'ai utilisé console.Setwindowposition (0, CurrentItem); Et cela a parfaitement fonctionné, mais je n'aurais pas trouvé cela si ce n'était pas pour vous dire que vous avez dit à mon de régler la position du curseur grâce à toute l'aide.


5 Réponses :


1
votes

Je pense que ce que vous voulez peut-être, c'est

System.Console.Clear()


3 commentaires

Je ne pense pas que j'étais clair avec ma question, je suis clair avant que je rafraîchis le menu Je souhaite modifier la position de défilement physique de la console pour afficher l'option sélectionnée actuelle.


@bobthemac Oui, je pense que vous étiez clair avec cela, mais je ne suis au courant d'aucune option de console qui le font. Peut-être qu'il est temps que vous ayez mis à niveau vers une application Windows Forms, où vous avez un accès plus direct aux barres de défilement?


J'utiliserais des formulaires Windows mais on m'a dit qu'il doit être une demande de console



7
votes
Console.SetCursorPosition(XCoordinate,YCoordinate);
Should do the trick.

4 commentaires

+1. Oh, j'aime cette idée. Bien que cela ne réponde pas non plus à la question, cela fournit un autre travail autour. Je soupçonne que l'op ne l'aimera pas non plus cependant :(


@BOBTHEMAC: L'essentiel est qu'il s'agit de la méthode que vous devez utiliser si vous souhaitez déplacer le curseur dans une position de défilement spécifique. S'il gâche votre menu, votre code d'écriture, vous devez probablement ré-écrire cette routine. Il n'y a pas beaucoup à ajouter, désolé.


Je ne veux pas déplacer le curseur que je veux faire défiler jusqu'à un point spécifique Devrais-je publier mon code de menu.


J'ai essayé cela un édité mon code pour la rendre en forme mais elle saute toujours au fond lorsque je change ma sélection.



1
votes

Cela pourrait vous être utile: xxx

de MSDN :

Utilisez la méthode SetCursorposition pour spécifier où l'écriture suivante L'opération dans la fenêtre de la console doit commencer. Si le curseur spécifié la position est en dehors de la zone actuellement visible dans la console fenêtre, l'origine de la fenêtre change automatiquement pour faire le curseur visible.

Cette réponse Stackoverflow donne un exemple sur la façon de l'utiliser: https://stackoverflow.com/a/3407570/53777


0 commentaires

1
votes

Ceci devrait fonctionner pour vous xxx

Essayez de faire quelque chose comme ceci: xxx

pour voir , si c'est ce que vous cherchez.

J'espère que cela aide.


0 commentaires

3
votes

C'est ce que j'ai utilisé à la fin et cela a fonctionné comme je le voulais.

Console.SetWindowPosition(0 , currentItem);


0 commentaires