c# - 如何在 C# 中创建 TreeView 首选项对话框类型的界面?

标签 c# user-interface

我正在编写的应用程序基本上只是一个首选项对话框,很像 Visual Studio 本身使用的 TreeView 首选项对话框。该应用程序的功能只是将数据从串行设备传递到文件。它在将数据写入文件之前对数据执行许多很多转换,因此应用程序的 GUI 只是指示这些转换应该是什么的所有设置。

设计/编码 TreeView 首选项对话框的最佳方式是什么?我一直在做的事情是构建主窗口,左侧有一个停靠的树控件。然后我一直在创建对应于树的每个节点的容器控件。当一个节点被选中时,应用程序将该节点的相应容器控件带到前面,将其移动到正确的位置,并在主窗口中将其最大化。这在设计时看起来真的非常笨拙。这基本上意味着在设计期间我有大量的容器控件超出了主窗口的边缘,我必须不断滚动主窗 Eloquent 能使用它们。我不知道我写这篇文章的方式是否完全有意义,但也许我正在谈论的这个视觉效果会更有意义:

form design

基本上我必须处理这个巨大的表单,到处都是容器控件,然后进行一系列运行时重新格式化才能使其正常工作。这似乎是很多的额外工作。我这样做是不是以一种完全愚蠢的方式?是否有一些我缺少的“明显”更简单的方法?

最佳答案

更简洁的方法是为每个“ Pane ”创建单独的表单,并在每个表单构造函数中设置

this.TopLevel = false;
this.FormBorderStyle = FormBorderStyle.None;
this.Dock = DockStyle.Fill;

这样一来,这些表单中的每一个都可以在自己的设计器中进行布局,在运行时实例化一次或多次,然后像普通控件一样添加到空白区域。

也许主窗体可以在一个面板中使用带有静态 TreeViewSplitContainer,并在另一个面板中使用空间来添加这些窗体。添加后,可以使用 Hide/ShowBringToFront/SendToBack 方法翻阅它们。

SeparateForm f = new SeparateForm(); 
MainFormSplitContainer.Panel2.Controls.Add(f); 
f.Show();

关于c# - 如何在 C# 中创建 TreeView 首选项对话框类型的界面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3725/

相关文章:

c# - 无法加载 SqlServerSpatial.dll

c# - Azure Web PubSub 和服务器之间的身份验证

c# - Amazon S3 上的 C# 文档在哪里?

c# - 混合 web api 操作和非 api 操作相同的 Controller asp.net 核心

c# - 无法将类型 'string' 隐式转换为 'System.Web.UI.WebControls.Label'

java - 缩小 JFrame 不起作用

android - onListItemClick() 中位置和行 id 之间的实际区别

python - TKinter GUI,如何使帧的大小正确?

java - 如何调整图标大小?

c - C语言图形用户界面