我有一个简单的System.Windows.Forms.Form
. 根据业务需求,一旦某些功能由于某些后台处理而变得可用,我将增加表单的大小并使用其他控件(按钮等)打开以前隐藏的区域。表单大小的更改由后台线程使用BeginInvoke
.
这一切都很好。但是,如果用户在屏幕上拖动表单,并且在此期间巧合地调用了更改表单大小的方法,则大小更改不会生效(从技术上讲,表单会更改大小,但会立即恢复到以前的大小)。
我通过设置Form.Size
属性来更改表单大小,但尝试了其他方法,例如设置Form.ClientSize
和调用Form.SetBounds()
。也试过Form.SuspendLayout()
/Form.ResumeLayout()
和强迫Form.PerformLayout()
。
到目前为止我没有尝试过任何工作,当它被移动时,表单拒绝改变大小。