Как прокрутить панель с клавиатуры?

Попробуйте сохранить файл .c перед сборкой. Я полагаю, что ваш компьютер ссылается на путь к файлу без какой-либо информации внутри него.

- имел аналогичную проблему при создании проектов C

1
задан Reza Aghaei 12 March 2019 в 10:26
поделиться

1 ответ

Вы можете получить из Panel и сделать его Selectable и установить для TabStop значение true. Тогда достаточно переопределить ProcessCmdKey и использовать клавиши со стрелками для прокрутки. Не забудьте также установить для его AutoScroll значение true.

Панель выбора - прокручиваемая с клавиатуры

using System.Drawing;
using System.Windows.Forms;
class SelectablePanel : Panel
{
    const int ScrollSmallChange = 10;
    public SelectablePanel()
    {
        SetStyle(ControlStyles.Selectable, true);
        SetStyle(ControlStyles.UserMouse, true);
        TabStop = true;
    }
    protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
    {
        if (!Focused)
            return base.ProcessCmdKey(ref msg, keyData);

        var p = AutoScrollPosition;
        switch (keyData)
        {
            case Keys.Left:
                AutoScrollPosition = new Point(-ScrollSmallChange - p.X, -p.Y);
                return true;
            case Keys.Right:
                AutoScrollPosition = new Point(ScrollSmallChange - p.X, -p.Y);
                return true;
            case Keys.Up:
                AutoScrollPosition = new Point(-p.X, -ScrollSmallChange - p.Y);
                return true;
            case Keys.Down:
                AutoScrollPosition = new Point(-p.X, ScrollSmallChange - p.Y);
                return true;
            default:
                return base.ProcessCmdKey(ref msg, keyData);
        }
    }
}
0
ответ дан Reza Aghaei 12 March 2019 в 10:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: