将对话框控件移动到选项卡中?
Move dialog controls into tabs?
我有一个包含多个控件的对话框。接下来,我添加了一个非常笨重的第 3 方网格控件。看起来不错,就是屏幕不够space。一个理想的选择是拥有 2 个选项卡,一个带有现有控件,另一个用于容纳网格。
看起来这种 "tab" 方法需要完全重写代码。有没有更好的方法来做到这一点?当您想将 GUI 控件移动到您知道的选项卡时,是否有任何具体问题?
不可能这么简单,但是如果你用的是winforms设计器,为什么不能直接剪切控件,拖入选项卡控件,然后粘贴控件呢?如果您遇到代码丢失处理程序的问题,您总是可以先将部分源代码复制到记事本中,然后在屏幕上移动控件后将它们粘贴回去。
您也可以尝试拖放到选项卡控件。只需在屏幕的一角使用 2 个选项卡将其缩小即可。当你拖入时,它会保持你放下时的位置。一个所有控件都在,展开它。
像这样的事情可以用 winforms+c# 来实现...不过我不知道你使用的是什么屏幕设计编辑器或 Gui 技术。我什至不确定平台。显然,如果不是 windows 那么我就离题了......
如果您选择选项卡式对话框,请选中此 http://hallofshame.gp.co.at/index.php?file=tabs.htm&mode=original 以避免最琐碎的问题:
您应避免将对话框控件(例如确定和取消)按钮放在选项卡上,因为它们适用于整个对话框而不是选定的选项卡
在对话框中使用选项卡被认为是一个坏主意,因为用户在单击“确定”时无法看到她的所有输入。例如,用户更改了 tab1 上的某些内容,单击 tab2 并单击 OK - 现在用户的印象是她没有更改任何内容(在 tab2 上),但按下 OK 仍然应用他的更改。当然,有时选项卡是不可避免的,但如果您可以避免在模态对话框中使用它们,请避免使用。一个不好的例子是 http://hallofshame.gp.co.at/find95.htm,其中所有搜索参数都在多个视觉上不相关的选项卡上输入。
选项卡隐喻是针对多个文档,而不是针对多个输入。 https://en.wikipedia.org/wiki/Tab_(GUI)
我不想在这里使用标签。你可以让对话框变大,你可以让网格变小,你可以使用布局来让用户把整个对话框变大,从网格中看到更多,你可以有拆分器让用户自定义 GUI。
(我发现很多时候使用GUI设计器是个坏主意,例如winforms设计器。最初对布局控件有很大帮助。但是从其他角度来看确实是一个障碍,例如隔离代码(并将其放入另一个选项卡),并继承和扩展 gui 片段。简而言之,您将放弃 OOP 的所有灵活性和强大功能,只支持更快速地将小部件放入表单的方法。
如果您在代码中有现有的表格,您可以从中制作一个 class,另一个 class 用于网格内容。然后重构您的表单以拥有一个选项卡sheet,并在第一个选项卡上放置您的第一个 class 的实例,在第二个 sheet 上放置您的网格内容的实例。
从代码编写 GUI 并不一定很难,只要您可以使用一些 OOP 隐藏实际 gui 框架的复杂性。如果您想查看示例,请告诉我。)
我有一个包含多个控件的对话框。接下来,我添加了一个非常笨重的第 3 方网格控件。看起来不错,就是屏幕不够space。一个理想的选择是拥有 2 个选项卡,一个带有现有控件,另一个用于容纳网格。
看起来这种 "tab" 方法需要完全重写代码。有没有更好的方法来做到这一点?当您想将 GUI 控件移动到您知道的选项卡时,是否有任何具体问题?
不可能这么简单,但是如果你用的是winforms设计器,为什么不能直接剪切控件,拖入选项卡控件,然后粘贴控件呢?如果您遇到代码丢失处理程序的问题,您总是可以先将部分源代码复制到记事本中,然后在屏幕上移动控件后将它们粘贴回去。
您也可以尝试拖放到选项卡控件。只需在屏幕的一角使用 2 个选项卡将其缩小即可。当你拖入时,它会保持你放下时的位置。一个所有控件都在,展开它。
像这样的事情可以用 winforms+c# 来实现...不过我不知道你使用的是什么屏幕设计编辑器或 Gui 技术。我什至不确定平台。显然,如果不是 windows 那么我就离题了......
如果您选择选项卡式对话框,请选中此 http://hallofshame.gp.co.at/index.php?file=tabs.htm&mode=original 以避免最琐碎的问题:
您应避免将对话框控件(例如确定和取消)按钮放在选项卡上,因为它们适用于整个对话框而不是选定的选项卡
在对话框中使用选项卡被认为是一个坏主意,因为用户在单击“确定”时无法看到她的所有输入。例如,用户更改了 tab1 上的某些内容,单击 tab2 并单击 OK - 现在用户的印象是她没有更改任何内容(在 tab2 上),但按下 OK 仍然应用他的更改。当然,有时选项卡是不可避免的,但如果您可以避免在模态对话框中使用它们,请避免使用。一个不好的例子是 http://hallofshame.gp.co.at/find95.htm,其中所有搜索参数都在多个视觉上不相关的选项卡上输入。
选项卡隐喻是针对多个文档,而不是针对多个输入。 https://en.wikipedia.org/wiki/Tab_(GUI)
我不想在这里使用标签。你可以让对话框变大,你可以让网格变小,你可以使用布局来让用户把整个对话框变大,从网格中看到更多,你可以有拆分器让用户自定义 GUI。
(我发现很多时候使用GUI设计器是个坏主意,例如winforms设计器。最初对布局控件有很大帮助。但是从其他角度来看确实是一个障碍,例如隔离代码(并将其放入另一个选项卡),并继承和扩展 gui 片段。简而言之,您将放弃 OOP 的所有灵活性和强大功能,只支持更快速地将小部件放入表单的方法。
如果您在代码中有现有的表格,您可以从中制作一个 class,另一个 class 用于网格内容。然后重构您的表单以拥有一个选项卡sheet,并在第一个选项卡上放置您的第一个 class 的实例,在第二个 sheet 上放置您的网格内容的实例。
从代码编写 GUI 并不一定很难,只要您可以使用一些 OOP 隐藏实际 gui 框架的复杂性。如果您想查看示例,请告诉我。)