1.窗体与界面设计-其他技术

主要介绍如何创建和关闭 MDI 窗体,在大型项目和产品的开发中常常将系统设计为 MDI 界面。

047 禁用窗口上的关闭按钮

本实例主要用到窗口处理函数 WndProc 的重写方法,在该方法内部截获单击关闭窗口的信息,从而实现禁用关闭按钮的功能。

创建一个项目,默认窗体为 Form1,在 Form1 窗体上添加一个 MenuStrip 控件。

namespace _047_ForbidCloseButton
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        //程序加载完成后,当用鼠标单击窗体上的关闭按钮时,通过方法WndProc截获关闭信息实现屏蔽
        protected override void WndProc(ref Message m)
        {
            const int WM_SYSCOMMAND = 0x0112;
            const int SC_CLOSE = 0xF060;
            if ((m.Msg == WM_SYSCOMMAND) && ((int)m.WParam == SC_CLOSE))
            {
                return;
            }
            base.WndProc(ref m);
        }

        //当退出应用程序时,选择菜单栏中“文件”菜单下的“退出”选项即可
        private void exitToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Application.Exit(); //退出应用程序
        }
    }
}

048 实现动态系统托盘图标

本实例主要用到 Timer 组件的 Tick 事件,在该事件中实现图标的闪烁。

创建一个项目,默认窗体为 Form1,在 Form1 窗体上添加一个 GroupBox 控件、两个 Button 控件、一个 NotifyIcon 控件以及一个 Timer 组件。设置 Timer 组件的 Interval 属性值为 400。

namespace _048_DynamicStockIcon
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        #region 本程序声明的变量
        public static bool flag = false;
        #endregion
        
        //当点击“闪烁”按钮时,图标出现闪动效果
        private void flicker_Click(object sender, EventArgs e)
        {
            stocktimer.Enabled = true;  //启动计时器stocktimer
        }

        //当点击“停止”按钮时,图标闪动效果消失
        private void cease_Click(object sender, EventArgs e)
        {
            stocktimer.Enabled = false; //关闭计时器stocktimer
            stockIcon.Icon = Properties.Resources._1;   //设置NotifyIcon控件的图标
        }

        //图标的闪烁是通过计时器stocktimer的Tick事件
        private void stocktimer_Tick(object sender, EventArgs e)
        {
            if (flag == false)                              //当标识值为假时
            {
                stockIcon.Icon = Properties.Resources._1;   //设定NotifyIcon控件的图标
                flag = true;                                //修改标识值为真
            }
            else
            {
                stockIcon.Icon = Properties.Resources._2;   //设定NotifyIcon控件的图标
                flag = false;                               //修改标识值为假
            }
        }
    }
}

049 实现气泡提示窗口

本实例主要用到 NotifyIcon 控件的 ShowBalloonTip 方法,该方法用于在任务栏中持续显示具有指定标题、文本和图标的气泡提示的指定时间。

创建一个项目,默认窗体为 Form1,在 Form1 窗体上添加一个 GroupBox 控件、两个 Button 控件以及一个 NotifyIcon 控件。

namespace _049_AlveoliClewWindow
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void clewButton_Click(object sender, EventArgs e)
        {
            this.notifyIcon1.Visible = true;    //设置NotifyIcon控件的可见性为真
            //显示气泡提示
            this.notifyIcon1.ShowBalloonTip(1000, "当前时间:", DateTime.Now.ToLocalTime().ToString(), ToolTipIcon.Info);
        }

        private void closeButton_Click(object sender, EventArgs e)
        {
            this.notifyIcon1.Visible = false;    //设置NotifyIcon控件的可见性为假
        }

        private void notifyIcon1_MouseMove(object sender, MouseEventArgs e)
        {
            //当光标移过NotifyIcon控件时将自动弹出提示信息
            this.notifyIcon1.ShowBalloonTip(1000, "当前时间:", DateTime.Now.ToLocalTime().ToString(), ToolTipIcon.Info);
        }
    }
}

转载于:https://www.cnblogs.com/iwanc/p/3140736.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值