我遇到与本文所述完全相同的问题:
http://social.msdn.microsoft.com/Forums/en/winforms/thread/bb67bf2d-4f6b-49a1-a107-18b11520bf8e
任何人都可以提供一些想法吗?非常感谢!
从以上链接复制:
如果我使用
ShowDialog
将表单显示为模式,它会显示在我的主监视器上,并且在那里表现得很好(最大化,最小化等等)。如果我在第二台或第三台显示器上移动表单,然后最大化 它,上面的整个栏停止工作:从左(系统菜单)到 对(恢复或最小化或关闭),包括中间(双倍 点击栏不恢复。
在某些情况下,当我翻过时,鼠标光标会变为“大小” 表格栏。左键单击并移动会调整表单大小!
答案 0 :(得分:0)
正如他们在上述链接中的msdn网站上观察到的那样,如果您的第二台显示器配置在主显示器的左侧,而不是在右侧显示器时,则会发生这种情况。
这发生在VS2010和VS2012中,包括C#和VB.NET。
1)创建Windows窗体应用程序
2)在表单中添加一个按钮
3)对于按钮的按钮单击处理程序代码:
private void button1_Click(object sender, EventArgs e) { Form f = new Form(); f.ShowDialog(); }
4)运行应用程序,单击按钮。将第二个表单拖动到另一个监视器,并最大化。
5)尽管可以,但现在禁用了所有标题栏按钮:最小化,恢复/最大化,关闭 通过右键单击上下文菜单还原。在主显示器上最大化不会这样做。
答案 1 :(得分:0)
我在左边第二个屏幕遇到了同样的问题,直到我将Form.FormBorderStyle
属性更改为FixedSingle
或Fixed3D
或FixedDialog
。
可以在Form_SizeChanged
事件处理程序中更改此属性,如下所示:
Private Sub Form1_SizeChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.SizeChanged
If Me.WindowState = FormWindowState.Maximized Then
Me.FormBorderStyle = Windows.Forms.FormBorderStyle.Fixed3D
else
Me.FormBorderStyle = Windows.Forms.FormBorderStyle.Sizable
End if