我有一个带有几个控件的对话框.接下来,我添加了第三方网格控件,这是非常笨重的.它看起来不错,但屏幕空间不足.一个理想的选择是具有2个选项卡,一个具有现有控件,另一个用于保持网格.
看起来这种“标签”方法需要完全重写代码.有没有更好的方法来做到这一点?如果要将GUI控件移动到您知道的选项卡中,是否有任何特定问题?
最佳答案 如果您选择标签式对话框,请检查此
http://hallofshame.gp.co.at/index.php?file=tabs.htm&mode=original以避免最琐碎的问题:
>您应避免将对话框控件(例如“确定”和“取消”)按钮放到选项卡中,因为它们适用于整个对话框而不是选定的选项卡
>在对话框中设置选项卡被认为是一个坏主意,因为用户在单击“确定”时无法看到所有输入.例如,用户在tab1上更改某些内容,单击tab2并单击“确定” – 现在用户的印象是她没有更改任何内容(在tab2上),但按“确定”仍然会应用他的更改.当然,有时标签是不可避免的,但如果您可以避免在模态对话框中使用它们,请避免使用.一个不好的例子是http://hallofshame.gp.co.at/find95.htm,其中所有搜索参数都输入到多个视觉上不相关的选项卡上.
>标签隐喻用于多个文档,而不是多个输入. https://en.wikipedia.org/wiki/Tab_(GUI)
我宁愿不在这里使用标签.您可以使对话框更大,您可以使网格更小,您可以使用布局允许用户使整个对话框更大并从网格中查看更多,并且您可以使用拆分器让用户自定义GUI.
(我发现使用GUI设计器很多次都是一个坏主意,比如winforms designer.最初布局控件是一个很大的帮助.但是它确实是其他方面的障碍,例如隔离代码(并将其放到另外一个选项卡),继承和扩展gui片段.简而言之,你将放弃OOP的所有灵活性和权力,只是为了更快地将小部件扔到你的表单中.
如果你在代码中有现有的表单,你可以用它来创建一个类,并为网格的东西创建另一个类.然后重构您的表单以获得一个标签页,并在第一个选项卡上放置您的第一个类的实例,并在第二个表单上放置您的网格实例.
一旦你可以用一些OOP隐藏实际gui框架的复杂性,从代码编程GUI并不一定困难.如果你想看一个例子,请告诉我.)