【问题标题】:Panel fixed position面板固定位置
【发布时间】:2012-03-14 01:01:10
【问题描述】:

我在表单中有一个面板,我希望它位于表单顶部的固定位置。因此,如果我向下滚动,面板将始终可见。

你知道我该怎么做吗?

【问题讨论】:

  • ASP.NET、Winforms 还是 WPF?都有面板,我们可以挑一个吗?
  • 要获得对您问题的良好答案,您需要指定有关该问题的更多详细信息。你在使用 ASP.NET/WPF/Winforms/Silverlight 吗?你的代码现在怎么样了?
  • 嗯,据我所见,不完全重复。但我不能重做一个近距离投票。

标签: c# winforms scroll panel


【解决方案1】:

有两个面板,其中一个停靠在表单上,​​但要确保浮动面板是表单控件集合的一部分,而不是停靠填充面板的集合。有时更难与设计师打交道。

示例应用程序:

public partial class Form1 : Form {
  Panel backPanel;
  Panel floatPanel;

  public Form1() {
    InitializeComponent();

    floatPanel = new Panel();
    floatPanel.BorderStyle = BorderStyle.FixedSingle;
    floatPanel.SetBounds(0, 0, 128, 64);
    this.Controls.Add(floatPanel);

    backPanel = new Panel();
    backPanel.Dock = DockStyle.Fill;
    backPanel.AutoScrollMinSize = new Size(0, 1000);
    this.Controls.Add(backPanel);
  }
}

这是针对现有面板顶部的浮动面板。没有太多的 gui 意义,因为如果控件滚动到浮动面板下方会发生什么?

如果您正在寻找刚好位于滚动部分上方的顶部面板,请以相反的顺序添加两个面板,并将“顶部”面板停靠在顶部,这样顶部面板就不会放在“后面”滚动面板。

示例应用程序:

public partial class Form1 : Form {
  Panel backPanel;
  Panel topPanel;

  public Form1() {
    InitializeComponent();

    backPanel = new Panel();
    backPanel.Dock = DockStyle.Fill;
    backPanel.AutoScrollMinSize = new Size(0, 1000);
    this.Controls.Add(backPanel);

    topPanel = new Panel();
    topPanel.Height = 64;
    topPanel.Dock = DockStyle.Top;
    this.Controls.Add(topPanel);
  }
}

【讨论】:

  • 如果我有一个 BindingNavigator 怎么办?我怎样才能把它固定在上面? Dock 属性不起作用。
  • @user1051434 为什么它不起作用?我用 BindingNavigator 控件替换了“topPanel”控件,它工作得很好。它转到表单的顶部,滚动面板就在它的正下方。这是基于第二个示例,因为听起来您并没有尝试在面板上“浮动”控件。
  • @user1051434 事情的顺序很重要,设计师可以在这里妨碍事情。我的示例有效,因为我添加了面板(或导航栏)之后我添加了滚动面板。反过来做会使控件“落后于”另一个控件。另一种方法是在设计器中使用BringToFront()SendToBack() 方法,或者打开“视图”-“其他窗口”-“文档大纲”窗口来更改控件的 z 顺序。
  • 我在面板中有一个 bindingNavigator。当我滚动时,无法让我的 bindingNavigator 固定到面板的顶部。我有吗?
  • @user1051434 不,如果它们在同一个面板中,则不会。您正在滚动的内容会被导航栏隐藏在顶部。这就是为什么我的示例代码首先放入滚动面板,然后是顶部面板。当然,您可以将两个面板都放在父面板或用户控件中,但规则应该是,只有滚动的项目才属于该滚动容器。如果它不滚动,则它不属于该容器的“内部”。
猜你喜欢
  • 1970-01-01
  • 2014-10-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-17
  • 1970-01-01
相关资源
最近更新 更多