在c/c++里可以通过WM_GETMINMAXINFO消息限制窗体在拖动改变大小时最小尺寸和{zd0}尺寸,可是这个方法在C#里是无法使用的。
在C#里可以绑定窗体拖动事件,然后在事件方法里强制最小或{zd0}Size。
const int MinWidht=300; const int MinHeith=300; const int MaxWidth=600; const int MaxHeith=600; private void Form1_Resize(object sender, EventArgs e) { if (this.Width > MaxWidth) this.Width = MaxWidth; if (this.Height > MaxHeight) this.Height = MaxHeight; if (this.Width < Minwidth) this.Width = MinWidth; if (this.Heigth < MinWidth) this.Height = MinHight; }
老实说,这个方法其实是非常“蠢笨”的,如果窗体控件比较多,在拖动时会发现窗体闪烁的厉害。由于对API不是很熟悉,想从API上下手,可是力不从心。求助于Google、Baidu时搜索到的都是Delphi/C的解决方案,搞不懂为什么C#不提供Constraints属性,这样会省了好多气力。
此问题对我仍是无解中,希望哪天遇到高手解之。
随机日志
回复自“C#限制Winform窗体尺寸的问题”
发表回复