using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;

namespace TextBoxVScrollBar_CS
{
    public partial class Form1 : Form
    {
        [DllImport("coredll.dll")]
        extern static int SendMessage(IntPtr hWnd, uint Msg, int wParam, int lParam);

        /// <summary>
        /// Сообщение Windows для работы с полосой прокрутки
        /// </summary>
        const int WM_VSCROLL = 0x115;

        // константы для сообщения WM_VSCROLL
        const int SB_LINEUP = 0;
        const int SB_LINEDOWN = 1;
        const int SB_PAGEUP = 2;
        const int SB_PAGEDOWN = 3;

        public Form1()
        {
            InitializeComponent();
            #if DEBUG
                MinimizeBox = false;
            #else
                MinimizeBox = true;
            #endif
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            // Отрывок из повести А.С.Пушкина "Дубровский"
            txtBook.Text = @"Несколько лет тому назад в одном из своих поместий жил старинный русский барин, Кирила Петрович Троекуров. Его богатство, знатный род и связи давали ему большой вес в губерниях, где находилось его имение. Соседи рады были угождать малейшим его прихотям; губернские чиновники трепетали при его имени; Кирила Петрович принимал знаки подобострастия как надлежащую дань; дом его всегда был полон гостями, готовыми тешить его барскую праздность, разделяя шумные, а иногда и буйные его увеселения.";
        }

        private void butUp_Click(object sender, EventArgs e)
        {
            // на одну строчку вверх
            SendMessage(txtBook.Handle, WM_VSCROLL, SB_LINEUP, 0);
        }

        private void butDown_Click(object sender, EventArgs e)
        {
            // на одну строчку вниз
            SendMessage(txtBook.Handle, WM_VSCROLL, SB_LINEDOWN, 0);
        }

        private void butPageUp_Click(object sender, EventArgs e)
        {
            // на одну страницу вверх
            SendMessage(txtBook.Handle, WM_VSCROLL, SB_PAGEUP, 0);
        }

        private void butPageDown_Click(object sender, EventArgs e)
        {
            // на одноу страницу вниз
            SendMessage(txtBook.Handle, WM_VSCROLL, SB_PAGEDOWN, 0);
        }
    }
}