如何使win表格上的某个区域可滚动?

时间:2016-06-09 12:39:49

标签: c# winforms

以下项目必须适用于WinForm上的特定区域。

“订单1 ------------剩余时间:00:20:00”
“订单2 ------------剩下的时间:01:30:20”

我们应该能够对每个订单执行以下操作:

  1. 每个项目占用不超过一行。作为指定的区域 对于它在胜利形式上是有限的,因为更多的项目进来,我想 使区域可滚动。
  2. 根据剩余的时间,线的背景颜色也应该改变。
  3. 旁边有一个DONE按钮。因此,如果选择了项目并按了DONE,则该项目将从列表中移除。
  4. 我的问题是可以使用C#Form控件。我在考虑标签,但如果有很多区域,如何使区域可滚动。如果不是标签,建议还有什么?

1 个答案:

答案 0 :(得分:0)

正如评论中所建议的那样,您可以使用网格,但如果它不符合您的要求,这就像您可以做的那样 -

  • 创建一个自定义用户控件,该控件将为您的订单详细信息和完成按钮提供标签控件。这样的事情(确定你会更好地设计它!)。标签最初将为空,然后在创建控件时使用公共属性从外部传递。

enter image description here

  • 在此控件上定义Event,并在单击完成按钮时引发此事件。您的主表单需要知道何时删除此用户控件。

  • 在主表单中添加FlowLayoutPanel。这将是用户控件的容器。确保设置以下内容,以便根据需要创建控件

this.flowLayoutPanel1.FlowDirection = FlowDirection.TopDown;

this.flowLayoutPanel1.WrapContents = false;

this.flowLayoutPanel1.AutoScroll = true;

  • 现在,您可以通过循环或您喜欢的方式开始将自定义控件添加到此FlowLayoutPanel。控件将以线性方式添加,每行一个,您还可以滚动它超过给定的空间。

  • 确保为控件定义事件处理程序,以便知道何时删除控件。当然,你可以设置其他属性,如背景颜色等。这不会有任何问题。