zoukankan      html  css  js  c++  java
  • 为窗体添加 "最大化","最小化","还原"等 事件

                     为窗体添加 "最大化","最小化","还原"等 事件
                                                                                 电子科技大学软件学院03级02班 周银辉

         在.Net3.0以前的版本中(Form类)都没有与窗口最大化、最小化等相关的事件, 这让人很郁闷. ( .Net3.0的Window类中添加了该事件"StateChanged "). 这里来重写Form类以便添加这几个事件.

    1, 参数 WindowStateChangedEventArgs
    /// <summary>
        
    /// 包含窗口状态变化时的相关数据
        
    /// </summary>

        public class WindowStateChangedEventArgs : EventArgs
        
    {
            
    private readonly FormWindowState oldState;
            
    private readonly FormWindowState newState;

            
    public FormWindowState OldState
            
    {
                
    get
                
    {
                    
    return oldState;
                }

            }



            
    public FormWindowState NewState
            
    {
                
    get
                
    {
                    
    return newState;
                }

            }


            
    public WindowStateChangedEventArgs(FormWindowState oldState, FormWindowState newState)
            
    {
                
    this.oldState = oldState;
                
    this.newState = newState;
            }



        }

    2, 继承Form类并添加事件WindowStateChanged
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Drawing;
    using System.Data;
    using System.Text;
    using System.Windows.Forms;

    namespace MDIHelper
    {
        
    public partial class CustomForm : Form
        
    {
            
    //记录状态变化之前的状态
            private FormWindowState preWindowState = FormWindowState.Normal;

            
    public CustomForm()
            
    {
                InitializeComponent();
            }


            
    事件


            
    重写的方法
        }

    }

    其中最重要的部分是 protected override void WndProc(ref Message m) , 它捕获了发给窗体的消息, 关于消息的常量值可以在winuser.h中找到,关于消息的具体含义可以在WindowsSDK中找到.
    更多的, 你可以利用protected override void WndProc(ref Message m) 创建更多事件.
  • 相关阅读:
    Dynamics CRM修改密码界面
    Dynamics CRM新加了组织后提示数据加密错误的解决方法
    ADFS修改默认访问端口
    Dynamics CRM与ADFS安装到同一台服务器后ADFS服务与Dynamics CRM沙盒服务冲突提示808端口占用问题
    Dynamics CRM各个版本的元数据浏览解决方案
    Dynamics CRM9.0安装CRM的时候提示Microsoft.Crm.Setup.Server.RegisterSandboxServiceAction操作失败
    IIS误删了默认网站,恢复方法
    grafana配置邮件告警
    Git连接Gitlab并提交内容
    docker自定义bridge
  • 原文地址:https://www.cnblogs.com/zhouyinhui/p/619175.html
Copyright © 2011-2022 走看看