无法修改Form尺寸的解决方法

最近在做一个小程序,需要创建一个很小的无边框窗口,窗口的高度大概是25个像素,于是新建一个普通Form,并如下编码:

using System;
using System.Collections.Generic;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace ClickThroughTest
{
     public partial class ClickThroughForm : Form
     {
         public ClickThroughForm()
         {
             InitializeComponent();
             this.FormBorderStyle = FormBorderStyle.FixedSingle;
             this.StartPosition = FormStartPosition.Manual;
             this.Text = String.Empty;
             this.ShowInTaskbar = false;
             this.ControlBox = false;
         }
         public void AdjustSize()
         {
             Size newSize = new Size(80, 25);
             this.Size = newSize;
         }
     }
}

奇怪的事情发生了,窗口的大小比我指定的大了不少,用Spy4win看了看,好像是124*36,而不是我指定的80*25,如下图所示:

抓耳挠腮许久,又反复检查代码,肯定自己没有在什么地方犯错误,由反复修改尺寸值测试,发现只要大小大于124*36就能正确设置Size,否则的话就无法正确显示。

无奈之下只好google之,发现好像是winform的一个bug,寻找解决方案,无果。

大概一个小时之后,正郁闷的时候,突然发现MaximunSize和MinimumSize两个属性,死马当做活马医,反复测试之后修改代码如下:

public void AdjustSize()
         {
             Size newSize = new Size(80, 25);

this.MaximumSize = this.MinimumSize =
  newSize;
             this.Size = newSize;
         }

很惊奇的发现居然好了,效果如下:

 

注意:必须同时设置MaximumSize和MinimumSize才能解决这个问题,否则还是显示错误,MinimumSize可以随意设置,比如new Size(1, 1)。

虽然是个小问题,不过有时候可能用得到,分享一下,呵呵 O(∩_∩)O~

[Update] 终于实现快速工具栏了,记录一下,呵呵。红框中就是纠正尺寸大小问题的小工具栏。

时间: 2024-09-20 13:30:41

无法修改Form尺寸的解决方法的相关文章

检测到有潜在危险的 Request.Form 值的解决方法

问题描述 从客户端(fck_content="<h2><spanstyle="bac...")中检测到有潜在危险的Request.Form值.说明:请求验证过程检测到有潜在危险的客户端输入值,对请求的处理已经中止.该值可能指示危及应用程序安全的尝试,如跨站点的脚本攻击.通过在Page指令或配置节中设置validateRequest=false可以禁用请求验证.但是,在这种情况下,强烈建议应用程序显式检查所有输入.异常详细信息:System.Web.HttpR

win7系统安装主题之后无法修改桌面图标的解决方法

  1.首先,咱们需要返回到win7旗舰版电脑的桌面位置,然后随意的找到一片空白处,点击鼠标右键,然后在下滑菜单中选择个性化. 2.再打开的个性化设置窗口中,咱们点击左侧菜单中的更改桌面图标,之后就可以看到如下图中所示的窗口了. 主题之后无法修改桌面图标的解决方法-重装系统之后桌面图标"> 3.在窗口的最下方位置,咱们可以看到一个"允许主题更改桌面图标"的选项,咱们将这个选项前面的勾选加上,然后点击确定保存设置,这样,咱们的win7旗舰版电脑在更改了主题之后,也可以实现

Navicat查询结果不能修改的原因及解决方法_Mysql

问题: 开发中常使用Navicat查询数据库,并修改数据库中的值.今天发现查询结果为只读,不能修改.一般连表查不能修改我是知道的,但是单表查居然不能修改. 解决方法: 查了下,有说表是只读,也有说是权限不够.后来发现都不是,是因为该表没有设置主键.

SQL Server阻止保存修改表结构的解决方法_MsSql

在我们的程序开发中,有时候会由于需求的变化而要修改数据库中的表结构.可能是增减列,也可能是修改数据类型,或者修改列名等等.但修改表结构是个危险操作,默认情况下,当你修改表结构时,会弹出如下提示框 上图是修改DeUser表中列的数据类型(从varchar修改为int),然后保存时弹出的提示框.如果我们不想重新创建这张表,只是想在原有的基础上修改它的结构该怎么办呢? 步骤如下: 步骤1.打开SQL Server Management Studio 步骤2.选择Tools (工具菜单) 步骤3.选择O

IE6不能修改NAME问题的解决方法_javascript技巧

The NAME attribute cannot be set at run time on elements dynamically created with the createElement method. To create an element with a name attribute, include the attribute and value when using the createElement method. 也就是说,你得这么写 复制代码 代码如下: documen

SQL Server阻止保存修改表结构的解决方法

在我们的程序开发中,有时候会由于需求的变化而要修改数据库中的表结构.可能是增减列,也可能是修改数据类型,或者修改列名等等.但修改表结构是个危险操作,默认情况下,当你修改表结构时,会弹出如下提示框 上图是修改DeUser表中列的数据类型(从varchar修改为int),然后保存时弹出的提示框.如果我们不想重新创建这张表,只是想在原有的基础上修改它的结构该怎么办呢? 步骤如下: 步骤1.打开SQL Server Management Studio 步骤2.选择Tools (工具菜单) 步骤3.选择O

Win8.1系统无法修改提示音的解决方法

  具体如下: 1.在Win8.1桌面下按下WIN+R键,然后输入注册表编辑器打开命令 regedit 回车; 2.定位到"HKEY_CURRENT_USERAppEventsEventLabels" 3.向下滚动定位到WindowsLogon,在右边窗口找到"ExcludeFromCPL"这个键值双击将1改为0或删掉这个键值; 4.对WindowsLogoff. WindowsUnlock 和 SystemExit做同样的操作; 5.关闭注册表编辑后,我们再打开声

jquery dialog open后,服务器端控件失效的快速解决方法

 本篇文章是对jquery dialog open后,服务器端控件失效的快速解决方法.进行了详细的分析介绍,需要的朋友可以过来参考下,希望对大家有所帮助 jquery dialog为我们提供了非常漂亮实用的对话框,比单调的alert.confirm.prompt好用很多.    在使用jquery与.net共同开发时,直接调用jquery dialog的open后,服务器端控件全部失效了,不能执行相应的后台代码.只是源于jquery默认把dialog添加到body中,而不是原来所在的服务器端的f

jquery dialog open后,服务器端控件失效的快速解决方法_jquery

jquery dialog为我们提供了非常漂亮实用的对话框,比单调的alert.confirm.prompt好用很多. 在使用jquery与.net共同开发时,直接调用jquery dialog的open后,服务器端控件全部失效了,不能执行相应的后台代码.只是源于jquery默认把dialog添加到body中,而不是原来所在的服务器端的form中了 解决方法: 1.可以调用dialog的open前,$("#dialog").parent().appendTo("form:fi