Использую компонент AxAcroPDF в десктопном приложении C#. Приложение работает по принципу терминала, управление только с клавиатуры, без мыши. Потому и возникла известная уже здесь проблема, что AxAcroPDF перехватывает все события нажатия клавиш,то есть, например, по нажатию на Esc у меня должен произойти выход из просмотра PDF, а компонент не дает это сделать, не зависимо от расположения фокуса. Чтоб не делать клавиатурный хук на эту и несколько других клавиш, расположил компонент на панели у которой свойство Enabled = false и прописал все действия над PDF вручную (листание вперед-назад, переход на первую/последнюю страницу, изменение масштаба):
if (e.KeyCode == Keys.Right)
{
axAcroPDF1.gotoNextPage();
}
if (e.KeyCode == Keys.Left)
{
axAcroPDF1.gotoPreviousPage();
}
if (e.KeyCode == Keys.Up)
{
axAcroPDF1.gotoPreviousPage();
}
if (e.KeyCode == Keys.Down)
{
axAcroPDF1.gotoNextPage();
}
if (e.KeyCode == Keys.Home)
{
axAcroPDF1.gotoFirstPage();
}
if (e.KeyCode == Keys.End)
{
axAcroPDF1.gotoLastPage();
}
if (e.KeyCode == Keys.PageUp)
{
axAcroPDF1.gotoPreviousPage();
}
if (e.KeyCode == Keys.PageDown)
{
axAcroPDF1.gotoNextPage();
}
if (e.KeyCode == Keys.Add)
{
zoom = zoom + 5;
axAcroPDF1.setZoom(zoom);
}
if (e.KeyCode == Keys.Subtract)
{
zoom = zoom - 5;
axAcroPDF1.setZoom(zoom);
}
Теперь все работает, но осталось понять как сделать так, чтоб когда размер текущей страницы PDF больше размера компонента axAcroPDF, то по нажатию на клавиши курсора, компонент не перелистывал бы страницу, а двигал бы текущую страницу до края. При стандартном использовании, компонент это позволяет делать, но интересно было бы узнать как это прописать вручную