将C#窗体设置为负位置

6
我正在开发一个与CloudApp API交互的Windows工具。我在这里找到了一些关于如何实现区域捕获的文章,我对其进行了修改以适应我的确切需求。一切都进行得很顺利,但是我在处理多监视器设置时遇到了麻烦。问题的原因是我有一个1920x1080的显示器和一个1080x1920的显示器。
总体流程是我创建了整个屏幕(3000, 1920)的图像,然后将其显示为表单中的背景。问题是我无法使该表单从负点开始,因此它会向下移动所有内容。
如果我查看在执行区域选择之前捕获的原始图像,一切正常:

http://img.paronity.com/KsiA

enter image description here

问题是当我打开区域表单时。为了使它成为表单的背景并处于正确的位置,我需要表单的左上角X,Y为(0,-670)。无论我尝试哪种方法,都无法实现这一点。
有没有办法实现我所缺少的负点?为了完整起见,我制作了一个非常简单的表单,当您移动它时输出其“顶部”坐标,并且当我将其移动到垂直监视器的上部时,我得到负点,因此我知道它们是有效的。
如果我的代码的任何部分有用,请告诉我,我会发布它。我只是不确定它是否必要。提前致谢!

Windows Forms,WPF,SilverLight? - John Saunders
1
如果在一个窗体中使用this.Location = new Point(-50, -50);,它会按预期工作吗? - dognose
1
我尝试使用Winform,将StartPosition设置为“Manual”,并将位置设置为0;-670,它按预期工作。 - 2pietjuh2
1个回答

2

对于这篇文章我感到抱歉。它是可以实现的。问题在于我在表单的构造函数中设置了表单的大小,我没有意识到这样做行不通。一旦我改为在表单加载事件中设置大小,它就移到了正确的位置。

感谢 @dognose!你说你的测试成功了让我想到可能是作用域/位置的问题,而确实如此!感谢每个看过这个问题的人!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接