1

我想实现以下 WinForms 用户界面,顶部有两个按钮,允许用户在两​​个视图之间切换。

所以,当我点击第一个按钮(“显示用户配置文件”)时,下面的三个面板应该显示三个不同的用户配置文件(从数据库中获取一些内容),就像这样......

在此处输入图像描述

当我点击第二个按钮(“显示聊天历史”)时,下面的三个面板应该显示三个不同的聊天历史(从数据库中获取一些内容),就像这样......

在此处输入图像描述

在 C#/.Net 中实现这种结构的好方法(动态或静态)是什么?有没有比我下面的粗略方法更清洁或至少更有效的方法:

  • 为三个 Profile 布局三组控件
  • 为三个聊天历史设置三组控件,重叠在配置文件控件的顶部。
  • 根据按下的按钮更改控件的可见性。
  • 例如,如果单击第一个按钮,则将所有与 Chat-History 相关的控件设置Visibility=false,并将所有与 User-Profiles 相关的控件设置Visibility=true
4

1 回答 1

3

选项卡控件将为您提供一组单独的面板。这是显而易见的方法,但是如果您想覆盖面板并控制可见性,那很好。我有一个内容查看器,它根据内容的 mime 类型显示图像或文本,并且在没有用户交互的情况下发生上下文切换,因此将图像控件放在文本框顶部并将其设置为可见是有意义的mime 类型是图像/jpeg。如果用户要做出选择,我会使用选项卡控件。

我假设您正在使用可视 ui 来添加控件。您可以将一个选项卡控件拖到您的表单中,默认情况下它应该显示为定义了 2 个选项卡。您可以在修改标签页集合的属性中添加更多内容。您还可以在此处重命名它们以反映您的选择(个人资料、聊天)。将选项卡控件向上拖动到表单上您想要的位置并适当调整大小,或将其停靠以填充表单。将 3 个面板拖到第一个选项卡中,然后单击第二个选项卡,并在其中再拖 3 个面板。然后继续进行。当用户单击聊天选项卡时,选项卡控件将管理视图 - 隐藏第一个选项卡及其 3 个面板。当然,单击第一个选项卡会使该 tabPage 再次可见。无需您编写任何代码。

我只是补充一点,我不明白让 3 个配置文件和 3 个聊天记录可见的设计。除非您的用户将被限制为 3 个朋友。我认为您最好在个人资料页面上使用朋友姓名列表框,使用单个个人资料面板,该面板仅根据选择的朋友填充个人资料控件,然后在聊天页面上使用相同的列表,使用单个根据选择的朋友将历史加载到文本框中的聊天面板。这样你就可以拥有你想要的所有朋友:)

为了完整起见,我将建议另一种方法,当您可以在单个 tabPage 中同时提供它们时,为什么用户必须在选项卡之间切换以查看用户个人资料或聊天历史记录?您可以以编程方式为每个用户创建一个新选项卡,在该选项卡上,左侧是他们的个人资料面板,右侧是他们的聊天记录。更少的上下文切换 = 更好的用户体验。选项卡控件将允许您自动滚动不适合表单的选项卡(tm)。

于 2013-07-10T15:11:10.587 回答