在LEFT辅助监视器上时,Windows窗体无法调整大小

时间:2010-09-06 16:53:15

标签: .net winforms window-resize

我在使用c#编写的Windows应用程序时遇到了最棘手的问题。

虽然它没有什么特别之处,但主窗口在主监视器和任何辅助监视器上都可以很好地工作,当后者被配置为站在主监视器的右侧时。但是,当我将辅助屏幕重新配置为放置在主监视器的左侧侧时,我(和其他人)不再能够更改窗体的大小。鼠标指针不会变成'NW-SE-arrows',也不会点击&拖动边缘会对窗口大小的任何变化作出反应。

只有当我将表单的AutoSizeMode设置为GrowAndShrink时,才进行一些额外的实验吗?

这是某种错误还是我误解了财产?

要重现此问题,您应该

  • 启动一个新的WinForms项目
  • 将StatusStrip添加到表单底部
  • 运行项目(在我的情况下为Debug / Any CPU)
  • 将表单拖到主监视器左侧的辅助监视器

PS:似乎当我删除StatusStrip时,我根本无法调整表单大小,所以我猜这是StatusStrip对象中的一些副作用/ bug ...

添加一个带有以下代码的复选框,很明显该问题围绕着AutoSizeMode属性

private void chkAutoGrowAndShrink_CheckedChanged(object sender, EventArgs e) 
{ 
     this.AutoSizeMode = chkAutoGrowAndShrink.Checked ? 
             AutoSizeMode.GrowAndShrink : 
             System.Windows.Forms.AutoSizeMode.GrowOnly; 
}

更新:

因为我最近换过机器,所以我现在重新使用VS2010重新测试这款新笔记本电脑并保持&不料,问题不再存在。我仍然不确定它是从哪里来的,也许它随着时间的推移在.NET中得到修复,也许它是一个驱动程序问题...我想我们现在永远不会,但似乎没有什么用处来保持这个问题所以我会把它标记为关闭。 感谢给所有把宝贵时间放在其中的人!

2 个答案:

答案 0 :(得分:0)

如果您无法使用StatusStrip不在表单上调整大小,那么此处还有另一个问题。除非您将FormBorderStyle属性设置为固定样式,否则所有表单都应该可以调整大小。

答案 1 :(得分:0)

似乎这个问题是.NET / ???的硬件/驱动程序/特定版本有关。结束这样的问题。