winform窗口只允许最大化最小化 并随分辨率大小而改变

    using System;
      using System.Collections.Generic;
      using System.ComponentModel;
      using System.Data;
      using System.Drawing;
       
      using System.Text;
      using System.Windows.Forms;
       
     namespace WinFormDemo
     {
         public partial class Form1 : Form
         {
             public Form1()
             {
                 InitializeComponent();
             } 
      
             private void Form1_Load(object sender, EventArgs e)
             { 
                 this.MaximizeBox = false;
                 IsLoad = true;
             }
      
             public bool IsLoad { get; set; }
          
      
             public const int WM_SYSCOMMAND = 0x112;
      
             public const int SC_MINIMIZE = 0xF020;
             public const int SC_CLOSE = 0xF060; 
             public const int SC_RESTORE = 0xF120;
      
             protected override void WndProc(ref   Message m)
             {
                 if (m.Msg == WM_SYSCOMMAND)
                 {
      
                     int wParam = (int)m.WParam;
                     //拦截 除最小化 恢复 关闭 以外的消息
                     if (wParam != SC_MINIMIZE && wParam != SC_CLOSE && wParam != SC_RESTORE)
                     {
                         return;
                     } 
                 } 
                 base.WndProc(ref   m);
             }
      
             
      
             private void Form1_SizeChanged(object sender, EventArgs e)
             {
      
                   
                 if (WindowState == FormWindowState.Maximized)
                 {
                     if (IsLoad)
                     {
                         //最大化 时禁用 最大化按钮
                         this.MaximizeBox = false;
                     }
                     
                 }
                 else if(WindowState == FormWindowState.Minimized)
                 {
                     // 最小化时启用 最大化按钮 
                     //最大化 禁用时 恢复原始大小 不会最大化
                     this.MaximizeBox = true;
                 }
             }
      
             
            
         }
     }

知识共享许可协议
《winform窗口只允许最大化最小化 并随分辨率大小而改变》常伟华 创作。
采用 知识共享 署名-相同方式共享 3.0 中国大陆 许可协议进行许可。
相邻依据:发表时间
  • 多说评论
  • 签名
  • 新浪微博
  • 默认评论
  • Tab Header 5

0 条评论 / 点击此处发表评论

Tab Content 5

开发技术


开发平台和工具

sitemap     169.12ms