2013-05-10 93 views
-1

我写了一个C#WinForms应用程序中,我测试了它在多台PC,没有问题的工作。当我把它安装到我的祖母的时候,程序的顶部(包括最小化,最大化和退出按钮)被切断了,更糟糕的是,我无法移动窗体来显示按钮,因为要移动一个程序必须点击顶部。我试图ALT>标签>的举动,但它试图将光标定位在顶部,它不能顶起被关屏..TOP计划开启关闭屏幕

我不能把截图她的PC上,现在我不要与她一起重现错误。你知道任何导致这种情况的方式吗?我可以保证它不会发生在其他用户身上吗?

+0

嘛,哪里是形式*应该*出现?您可以控制WinForms表单在屏幕上的显示位置。 – svinja 2013-05-10 08:24:20

+2

你的项目的起点是什么?您的祖母的显示器是否适合您的应用尺寸? – Tomtom 2013-05-10 08:24:32

+0

在猜测你的应用程序打开居中屏幕和你奶奶的分辨率是小,你可以检查窗口矩形,并使用SetWindowPos将其移至0,0,如果负y – Sayse 2013-05-10 08:29:39

回答

0

好的,我重新调整了我的应用程序和几个控件的大小。我认为这个bug是因为表单大于计算机上的分辨率,并且我禁用了表单的大小调整。现在我已经在窗体上实现了控件的缩放,调整大小已启用并且窗体显示正确。

一切都很好,现在:d。谢谢大家的意见。

0

我做了一个小的应用程序,它显示了如何将应用程序的左上角设置在屏幕的左上边角,如果它的外屏幕。

public partial class Form1 : Form 
{ 
public Form1() 
{ 
this.InitializeComponent(); 
this.StartPosition = FormStartPosition.CenterScreen; 
this.LocationChanged += OnLocationChanged; 
} 
private void OnLocationChanged(object sender, EventArgs eventArgs) 
{ 
Screen screen = Screen.FromHandle(this.Handle); 
if (!screen.WorkingArea.Contains(this.Location)) 
this.Location = screen.Bounds.Location; 
} 
} 
+0

作为一个说明,如果窗口边界对于屏幕仍然过大,OP可能仍然会丢失最大化等等 – Sayse 2013-05-10 08:36:48