Forms 在单显示器和多显示器系统上放置窗体和对话框的最佳做法是什么?
我正在整理我的(Delphi)应用程序,我访问了浮动表单大小和位置持久性,这对于大屏幕不动产和多显示器来说似乎越来越重要。显然,通常希望在用户关闭表单时在同一位置重新打开表单,但可能并不总是这样,例如,模式对话框可能会证明在用户的视线前打开表单是正确的,即在主监控中心屏幕上。网络上似乎没有什么关于这方面的信息,商业应用程序似乎不一致,尤其是在多个监视器方面。所以,一些(可能相反!)规则让我们开始Forms 在单显示器和多显示器系统上放置窗体和对话框的最佳做法是什么?,forms,user-interface,dialog,position,monitor,Forms,User Interface,Dialog,Position,Monitor,我正在整理我的(Delphi)应用程序,我访问了浮动表单大小和位置持久性,这对于大屏幕不动产和多显示器来说似乎越来越重要。显然,通常希望在用户关闭表单时在同一位置重新打开表单,但可能并不总是这样,例如,模式对话框可能会证明在用户的视线前打开表单是正确的,即在主监控中心屏幕上。网络上似乎没有什么关于这方面的信息,商业应用程序似乎不一致,尤其是在多个监视器方面。所以,一些(可能相反!)规则让我们开始 非模态形式应始终在闭合的大小和位置重新打开 模式表单(即带有“确定/取消”、“是/否”按钮)应在
- 非模态形式应始终在闭合的大小和位置重新打开
- 模式表单(即带有“确定/取消”、“是/否”按钮)应在 以前的大小(如果相当大),但位于应用程序所在的监视器的中心
- 应在应用程序所在监视器的中心打开一个信息消息框
- 应在主监视器的中心打开警告或错误对话框
显然,这必须非常、非常谨慎地使用,而且只能用于最罕见和最重要的对话。但我觉得这很聪明。可能需要做的只是在三秒后将Ok设置为默认按钮。根据平台的不同,当应用程序在发出警报时没有焦点时,应该避免聚焦。对于键入的用户来说,在没有任何机会阅读的情况下关闭警报太容易了
例如,在Windows上,利用任务栏按钮的闪烁功能。显示器中央的对话框应永远不会打开。考虑30者中的一个“分辨率为2560 x 1600像素的显示器-在其中一个显示器上使用最大化的应用程序只有在非常特定的情况下才有意义。如果应用程序表单位于巨大屏幕区域的某个角落,则用户需要将鼠标光标从其当前位置移动到屏幕中心,然后在关闭对话框后返回。此外,在正常的视距下,可能不可能同时看到所有屏幕,因此活动窗口的中心将比屏幕中心更“在用户的视线之前”。任何不记得其位置的对话框都应以其父窗口为中心打开。对于比其父窗口大的对话框(在该窗口中,让父窗口的一部分可见是有意义的,这会让用户更清楚地看到正在发生的事情),以及应该出现在其应用对象附近的属性页,应该有例外 我也会考虑以屏幕面积的百分比而不是像素来保存屏幕位置。通过这种方式,使用带有或不带有大外部屏幕的笔记本电脑将始终能够最佳利用屏幕区域-使用绝对坐标将使屏幕部分未使用,或将窗口移到可见区域之外