Как установить фокус прокрутки на указанный элемент управления в приложении C # Windows? - PullRequest
0 голосов
/ 23 августа 2011

У меня есть панель с элементами управления и прокрутки. По умолчанию я устанавливаю фокус на панель. (Мне нужен фокус на панель по умолчанию), если я прокручиваю панель в какое-то место, сворачиваю форму и максимизирую ее, она устанавливаетположение в верхней части формы.если я выбираю любой из элементов управления и делаю то же самое, он фокусируется на том же элементе управления.

Я думаю, что здесь фокус управления вызывает проблему.Как установить фокус управления в соответствии с прокруткой?или Как показать ту же позицию прокрутки, когда свернуть и развернуть форму?

Ответы [ 3 ]

0 голосов
/ 23 августа 2011

Звучит так, как будто вы хотите отключить автоскроллинг.

Создать новую панель:

public class PanelEx : Panel
{
  protected override Point ScrollToControl(Control activeControl)
  {
    return this.DisplayRectangle.Location;
  }
}
0 голосов
/ 25 августа 2011

Я такой неряшливый.

Point CurrentPoint; 

private void Form1_Activated(object sender, EventArgs e)
{
   this.AutoScrollPosition = new Point(Math.Abs(this.AutoScrollPosition.X), Math.Abs(CurrentPoint.Y));
}

private void Form1_Deactivate(object sender, EventArgs e)
{
   CurrentPoint = this.AutoScrollPosition;
}
0 голосов
/ 23 августа 2011

Panel.ScrollControlIntoView - это то, что вы ищете?

...