Question

Pour ma C # RichTextBox, je souhaite effectuer la même chose par programme que de cliquer sur la flèche vers le haut située en haut d’une barre de défilement verticale, ce qui déplace l’affichage RichTextBox d’une ligne vers le haut. Quel est le code pour cela? Merci!

Était-ce utile?

La solution

Voici ce que je fais:

using System.Runtime.InteropServices;

[DllImport("user32.dll")]
static extern int SendMessage(IntPtr hWnd, uint wMsg, 
                               UIntPtr wParam, IntPtr lParam);

puis appelez:

SendMessage(myRichTextBox.Handle, (uint)0x00B6, (UIntPtr)0, (IntPtr)(-1));

semble fonctionner correctement - vous devrez peut-être modifier un peu les choses, cependant.

L’espoir que cela aide.

Autres conseils

Pour toute référence future, le message EM_LINESCROLL correspond à ce que vous envoyez à tout contrôle d'édition multiligne pour définir la position de défilement. Vous pouvez faire défiler verticalement ou horizontalement. Pour plus de détails, voir MSDN .

Vous pouvez également utiliser la méthode Rich Edit Selection, dans laquelle vous définissez l'index de caractère (que vous pouvez obtenir avec EM_LINEINDEX), puis appelez RichEdit.ScrollToCaret c'est-à-dire:

RichEdit.SelectionStart = SendMessage(RichEdit.Handle, EM_LINEINDEX, ScrollTo, 0);
RichEdit.ScrollToCaret();

Ceci fera défiler cette ligne en haut du contrôle d'édition.

window.scrollBy (0,20);

Ceci fera défiler la fenêtre. 20 est une valeur approximative que j'ai utilisée dans le passé et qui correspond généralement à une ligne ... mais bien sûr, la taille de la police peut avoir une incidence sur la distance réelle d'une ligne.

Si vous pouvez obtenir le contrôle de défilement de la zone de texte enrichi, vous devriez pouvoir obtenir sa propriété SmallChange et l'utiliser pour faire défiler le texte.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top