zoukankan      html  css  js  c++  java
  • 无法修改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(8025);
                
    this.Size = newSize;
            }
        }
    }

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

     

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

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

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

            public void AdjustSize()
            {
                Size newSize 
    = new Size(8025);
                
    this.MaximumSize = this.MinimumSize = newSize;
                
    this.Size = newSize;
            }

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

     

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

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

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

     

  • 相关阅读:
    Windows安装使用wget
    Ubuntu16.04 安装和卸载MySQL数据库
    申请百度翻译API
    Linux配置JDK
    vmware的三种网络连接模式
    3、linux-目录管理:mkdir、rmdir、mv
    2、linux-添加组groupadd、修改组groupmod、删除组groupdel
    1、linux-用户管理useradd,usermod,userdel
    在Linux操作系统里有Ext2、Ext3、Linux swap和VFAT四种格式
    第四次作业 简易计算器
  • 原文地址:https://www.cnblogs.com/leafyoung/p/1654773.html
Copyright © 2011-2022 走看看