C# 如何在c windows应用程序中将滚动焦点设置为指定控件?

C# 如何在c windows应用程序中将滚动焦点设置为指定控件?,c#,windows,winforms,scroll,focus,C#,Windows,Winforms,Scroll,Focus,我有带控件和滚动的面板。默认情况下,我将焦点设置为面板。默认情况下,我需要焦点设置为面板 如果我将面板滚动到某个位置,最小化窗体并将其最大化,则会将位置设置为窗体顶部。 如果我选择任何一个控件并执行相同的操作,它就是聚焦同一个控件 我认为这里的控制焦点是问题的根源。 如何根据滚动设置控制焦点?或 如何在最小化和最大化窗体时显示相同的滚动位置?是面板。滚动控制查看您要查找的内容?听起来您想自动滚动 创建新面板: public class PanelEx : Panel { protected

我有带控件和滚动的面板。默认情况下,我将焦点设置为面板。默认情况下,我需要焦点设置为面板 如果我将面板滚动到某个位置,最小化窗体并将其最大化,则会将位置设置为窗体顶部。 如果我选择任何一个控件并执行相同的操作,它就是聚焦同一个控件

我认为这里的控制焦点是问题的根源。 如何根据滚动设置控制焦点?或
如何在最小化和最大化窗体时显示相同的滚动位置?

是面板。滚动控制查看您要查找的内容?

听起来您想自动滚动

创建新面板:

public class PanelEx : Panel
{
  protected override Point ScrollToControl(Control activeControl)
  {
    return this.DisplayRectangle.Location;
  }
}
我就是这样解决的

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;
}