【问题标题】:How to create the following user interface?如何创建以下用户界面?
【发布时间】:2011-12-05 22:49:57
【问题描述】:

一位客户要求提供一种结合了多种不同元素的用户界面。它基本上是一个列表。在列表中选择一个条目会导致对话框就地展开:

项目 1 第 2 项 第 3 项 选择项目 2 后 项目 1 ---------------------------------- |项目 2 | |文本框按钮 | |按钮 | | | |文本框按钮 | ---------------------------------- 第 3 项

我知道你可以制作一些相当复杂的列表视图http://www.codeproject.com/KB/list/ObjectListView.aspx

你们中的一些 GUI 专家会如何做到这一点?这种类型的分层界面是否有名称,我可以搜索以了解更多信息?我可以用我的内联表单扩展 listviewitem 吗?我想我只需要一个关于如何开始的指针。我已经完成了一些表单编程,但这超出了我目前的知识范围。

谢谢

编辑 --

Dash 的评论让我走上了正确的道路,因为我认为这是我正在寻找的手风琴控件。由于他没有提供答案,我不知道如何将其标记为已回答...

【问题讨论】:

  • 您可能正在查看手风琴风格的控件:例如jfblier.wordpress.com/2011/02/21/accordion-control (stackoverflow.com/questions/1303195/winforms-accordion),尽管网上有很多示例。您基本上有 3 个区域都已折叠,但是当您单击一个区域时,它会展开。列表框可能不是您想要的。
  • 这是打算做WebForms界面还是WinForms?
  • 由于最后一行,我猜到了 WinForms,但很好问
  • @Dash 你应该把你的答案放在“答案”部分,这样它就可以被投票和/或接受。不要胆怯。
  • @dash:从其他答案的来源组成答案是没有问题的(参见this link! 中以“想知道一种简单的方法来赢得声誉吗?”开头的段落)。将您的答案作为答案也允许它在将来出错时被否决(希望不会),如果它满足 Paul H. 的需求,则作为答案被接受。

标签: c# forms user-controls layered


【解决方案1】:

如果您使用的是 WinForms,an implementation called DropDownPanel on CodeProject 看起来就像您想要的那样。

This answer 对类似问题描述了使用TableLayoutPanel 的可能解决方案,您可能也对此感兴趣。

【讨论】:

【解决方案2】:

我建议 TableLayoutPanel 有 6 行 1 列的方向:

Row1: 带有 text=Item1 的平面按钮

Row2:对应Item1的面板(visible false else button in row1已按下)

.... 等等。

注意:

第一行 2,4,6 可见=false

当第1,3,5行中的任何按钮被按下时取决于位置单行2,3,4可见=true否则可见=false。

【讨论】:

  • 听起来像一个自己的手风琴控制器!
【解决方案3】:

你看过 WPF expander control 吗?您可以将其合并到您的列表中以创建一个composite control,这将满足您希望创建的“分层”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-21
    • 2011-02-21
    • 1970-01-01
    • 2016-08-17
    相关资源
    最近更新 更多