2016-10-11 2 views
0

J'ai un contrôle de texte (RichTextBox) qui est à la hauteur totale de l'affichage lorsqu'il est actif. Comment faire pour que le RTB soit toujours positionné verticalement au milieu de la zone de texte riche lorsque l'utilisateur tape du texte?Conserver la position de défilement RichTextBox au milieu en tant que types d'utilisateur

Notez que j'ai dit verticalement parce que horizontalement, il devrait être à la position du caractère où l'utilisateur tape, donc inchangé par le programme.

+0

Cela ne répond pas à votre question, mais le défilement du contrôle alors que l'utilisateur tape est gênant l'OMI. Que voulez-vous faire si l'utilisateur fait défiler le contenu lui-même? –

+0

Le post ne dit rien sur le défilement pendant que l'utilisateur tape, ce serait absurde. Il s'agit d'avoir sa position de défilement au milieu de sorte que l'utilisateur continue à taper au milieu du RTB plutôt que de faire défiler chaque ligne ajoutée par l'utilisateur. –

Répondre

0

Peut-être que cela pourrait fonctionner,

private const int WM_VSCROLL = 0x0115; 
private const int SB_PAGEUP =2; // one page up 

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

    private void richTextBox1_TextChanged(object sender, EventArgs e) 
    { 
     SendMessage(richTextBox1.Handle, WM_VSCROLL, (IntPtr)SB_PAGEUP, IntPtr.Zero); 
    } 

espoir aide,