C#限制Winform窗体尺寸的问题- 木公博客| Lisong's Blog

在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属性,这样会省了好多气力。

此问题对我仍是无解中,希望哪天遇到高手解之。

随机日志

  • 十月 24, 2009 --
  • 四月 18, 2009 --
  • 一月 6, 2009 --
  • 一月 10, 2009 --
  • 六月 29, 2009 --

回复自“C#限制Winform窗体尺寸的问题”

发表回复

Note: 评论者允许使用'@user空格'的方式将自己的评论通知另外评论者。例如,ABC是本文的评论者之一,则使用'@ABC '(不包括单引号)将会自动将您的评论发送给ABC。使用'@all ',将会将评论发送给之前所有其它评论者。请务必注意user必须和评论者名相匹配(大小写一致)。

郑重声明:资讯 【C#限制Winform窗体尺寸的问题- 木公博客| Lisong's Blog】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——