我想实现以下WinForms用户界面,顶部有两个按钮,允许用户在两个视图之间切换。
因此,当我点击第一个按钮(“显示用户配置文件”)时,下面的三个面板应显示三个不同的用户配置文件(从数据库中提取一些内容),如下所示。
当我点击第二个按钮(“显示聊天记录”)时,下面的三个面板应显示三个不同的聊天记录(从数据库中提取一些内容),如此...
在C#/ .Net中实现这种结构的好方法(动态或静态)是什么?有没有比我的粗方法更清晰或更有效的方法:< / p>
答案 0 :(得分:3)
选项卡控件会为您提供一组单独的面板。它是显而易见的方法,但如果你想覆盖面板并控制可见性,那就很好了。我有一个内容查看器,根据内容的mime类型显示图像或文本,并且在没有用户交互的情况下进行上下文切换,因此将图像控件放在文本框的顶部并将其设置为可见是有意义的mime类型是image / jpeg。如果用户要做出选择,我会使用制表符控件。
我假设您使用visual ui添加控件。您只需将选项卡控件拖动到表单即可,默认情况下应显示2个选项卡。您可以在修改tabpages集合的属性中添加更多内容。在那里你也可以重命名它们以反映你的选择(配置文件,聊天)。将选项卡控件拖动到表单上所需的位置并适当调整大小,或将其停靠以填充表单。将3个面板拖到第一个选项卡中,然后单击第二个选项卡,再拖动3个。然后按照你的意愿进行。当用户单击聊天选项卡时,选项卡控件将管理视图 - 隐藏第一个选项卡及其3个面板。当然,单击第一个选项卡会使该tabPage再次可见。你无需编写任何代码。
我只是补充一点,我不明白有3个配置文件可见的设计,以及3个聊天记录。除非您的用户将被限制为3个朋友。我认为你最好在个人资料页面上使用列表框的朋友姓名,只有一个个人资料面板根据选择的朋友填充个人资料控件,然后在聊天页面上填写相同的列表,只需一个聊天面板根据选择的朋友将历史记录加载到文本框中。这样你就可以拥有你想要的所有朋友:)
为了完整性,我还建议一种方法,为什么用户必须在标签之间切换才能查看用户个人资料或聊天记录,只需在单个标签页中提供这两个标签即可?您可以以编程方式为每个用户创建一个新选项卡,并在该选项卡上左侧显示其配置文件面板,右侧显示其聊天记录。减少上下文切换=更好的用户体验。选项卡控件将允许您滚动自动填充表单上的选项卡(tm)。