使用“自定义位置”禁用控制框后,“表单大小”会混乱

时间:2014-06-04 02:12:39

标签: c# .net winforms user-interface

我做了一些研究,甚至找不到任何人提到我遇到的问题,如果我在c#中设置一个表单并编译它看起来很好的应用程序,但当我禁用控制盒的大小时表单似乎发生了变化,一切都搞砸了,但只有在程序运行时,它才能在gui构建器中找到并且正常。

我已经有了一段时间的问题而且我通常通过使表格更大并进行测试直到它看起来正确来解决这个问题,但这有点烦人,我希望其他人有更好的解决方案吗?

编辑:我移动了一些东西并将EXIT按钮固定到所有4个边,以更好地显示两个设置之间的输出差异

EDIT2:我发现只有在使用自定义位置时才会发生这种情况(IE位置!= 0,0)

EDIT3:在我的项目中,它获得了SMALLER,而formborderstyle解决方法在我的测试项目中没有工作

视频:https://www.youtube.com/watch?v=L5v2y5YCHio&feature=youtu.be

我还发现设置FormBorderStyle = Fixed是一个可能的解决方法,我已经在visual studio的网站上打开了一个错误报告,看看我们是否可以解决这个问题!

如果出现任何新内容,我会更新

WITH控制框:

enter image description here

没有控制框:

enter image description here

1 个答案:

答案 0 :(得分:0)

visual studio中有一个与自定义表单位置和控件框相关的错误,通常设置formbordersize = fixedsingle会解决这个问题,但在我的情况下,我在表单初始化期间更改了代码中的位置:

InitializeComponent();
this.Location = new Point(w.Location.X + (w.Width / 2) - (this.Width / 2), w.Location.Y);

通过更改代码(反转),如下所示:

this.Location = new Point(w.Location.X + (w.Width / 2) - (this.Width / 2), w.Location.Y);
InitializeComponent();

此问题已得到解决,我不确切知道导致此问题的原因,也不知道原因是否已解决,从技术上讲,初始化组件在其中设置的位置应该覆盖我的位置,但它适用于我。

我不会接受这个答案,有人可以更好地解释它,更详细地解释它为什么或如何运作,我会接受这个答案。

感谢您的时间!