我在这里遇到了一个用 c# 编写的 Windows 应用程序最奇怪的问题。
尽管它绝对没有什么特别之处,但是当主显示器配置为位于主显示器的右侧时,主窗口在主显示器和任何辅助显示器上都可以正常工作。但是,当我重新配置要放置在主显示器左侧的辅助屏幕时,我(和其他人)不再可以更改表单的大小。鼠标指针不会变为“NW-SE 箭头”,单击和拖动边缘也不会对窗口大小产生任何变化。
仅当我将表单的 AutoSizeMode 设置为 GrowAndShrink 时,才进行一些额外的实验似乎才浮出水面!?
这是某种错误还是我误解了该属性?
要重现此问题,您应该
- 开始一个新的 WinForms 项目
- 在表单底部添加一个 StatusStrip
- 运行项目(在我的情况下调试/任何 CPU)
- 将表单拖到位于主监视器左侧的辅助监视器
PS:似乎当我删除 StatusStrip 时,我根本无法调整表单的大小,所以我猜这是 StatusStrip 对象中的一些副作用/错误......
添加带有以下代码的复选框可以清楚地表明问题围绕 AutoSizeMode 属性
private void chkAutoGrowAndShrink_CheckedChanged(object sender, EventArgs e)
{
this.AutoSizeMode = chkAutoGrowAndShrink.Checked ?
AutoSizeMode.GrowAndShrink :
System.Windows.Forms.AutoSizeMode.GrowOnly;
}
更新:
由于我最近更换了机器,因此我现在使用 VS2010 在这台新笔记本电脑上重新进行了测试,然后等待,问题不再存在。我仍然不确定这是从哪里来的,也许它随着时间的推移在 .NET 中得到了修复,也许这是一个驱动程序问题......我想我们现在永远不会但似乎没有什么用把这个问题留在这里所以我只是将其标记为关闭。感谢所有将宝贵时间投入其中的人!