• WinForm 无边框窗体、后台创建控件、timer控件


    无边框窗体:

    1、控制按钮制作(例:QQ登录界面的关闭按钮)
      放置可以点击的控件,不局限于使用按钮或其他,可以点击出发点击事件即可(例:PictureBox)

      鼠标移入,移出,按下三个事件会让按钮改变样式(改变图片)

      获取图片的相对路径:Application.StartupPath + "\..\..\images\图片名称"

      ..文件夹名称...   向上翻一个文件夹


    2、无边框窗体本身不可移动,如何使无边框窗体可以在屏幕上移动
      调用窗体移动的API,需要引用DllImport命名空间

      //窗体移动API
      [DllImport("user32.dll")]
      public static extern bool ReleaseCapture();
      [DllImport("user32.dll")]
      public static extern bool SendMessage(IntPtr hwnd, int wMsg, int wParam, int IParam);
      public const int WM_SYSCOMMAND = 0x0112;
      public const int SC_MOVE = 0xF010;
      public const int HTCAPTION = 0x0002;
      [DllImport("user32")]
      private static extern int SendMessage(IntPtr hwnd, int wMsg, int wParam, IntPtr lParam);
      private const int WM_SETREDRAW = 0xB;

      private void Form1_MouseDown(object sender, MouseEventArgs e)
      {
         if (this.WindowState == FormWindowState.Normal)
         {
            ReleaseCapture();
            SendMessage(this.Handle, WM_SYSCOMMAND, SC_MOVE + HTCAPTION, 0);
         }
      }

      如果其它控件覆盖了窗体,需要增加鼠标按下的事件委托


    3、无边框窗体阴影


    Timer控件:

      Timer在组件里:(主要有以下三个主要属性)
         Enabled  -- 控件是否启用
         Interval  -- 时间间隔,毫秒
         Tick事件  -- 间隔指定时间后要执行的代码段
     
      Timer就是个线程,这个线程默认可以跨线程访问对象

  • 相关阅读:
    hdu2222 AC自动机入门
    bzoj1095: [ZJOI2007]Hide 捉迷藏 动态点分治学习
    【NOI2014】起床困难综合症 贪心
    bzoj1822: [JSOI2010]Frozen Nova 冷冻波网络流
    洛谷3767 膜法 带权并查集+分治
    NOI2015品酒大会 后缀数组
    NOI2015程序自动分析 并查集
    NOI2015软件包管理器 树剖线段树
    51nod1244 欧拉函数之和 杜教筛
    51nod1244 莫比乌斯函数之和 杜教筛
  • 原文地址:https://www.cnblogs.com/hcx999/p/5916856.html
Copyright © 2020-2023  润新知