• 大小: 37.4MB
    文件类型: .7z
    金币: 2
    下载: 3 次
    发布日期: 2023-06-30
  • 语言: C#
  • 标签: Winform  

资源简介

198个 C# Winform实例源码,适用于学习winform开发技巧的同学

资源截图

代码片段和文件信息

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;


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

        #region  公共变量
        IntPtr Tem_Handle;//获取控件及窗体的句柄
        Point CPoint;//获取控件中鼠标的坐标
        static int Tem_place = 0;
        int Frm_Height = 0;
        int FrmHeight = 0;

        #endregion

        #region  API声明
        //获取当前鼠标下可视化控件的句柄
        [DllImport(“user32.dll“)]
        public static extern int WindowFromPoint(int xPoint int yPoint);
        //获取指定句柄的父级句柄
        [DllImport(“user32.dll“ ExactSpelling = true CharSet = CharSet.Auto)]
        public static extern IntPtr GetParent(IntPtr hWnd);
        //获取屏幕的大小
        [DllImport(“user32.dll“ EntryPoint = “GetSystemMetrics“)]
        private static extern int GetSystemMetrics(int mVal);
        #endregion

        #region  获取当前鼠标下可视化控件的句柄
        /// 
        /// 获取当前鼠标下可视化控件的句柄
        /// 

        /// 当前鼠标的X坐标
        /// 当前鼠标的Y坐标
        public IntPtr FormNameAt(int x int y)
        {
            IntPtr Tem_hWnd;//设置存储句柄的变量
            Tem_Handle = (IntPtr)(WindowFromPoint(x y));//获取当前鼠标下可视化控件的句柄
            Tem_hWnd = Tem_Handle;//记录原始句柄
            while (Tem_hWnd != ((IntPtr)0))//遍历该句柄的父级句柄
            {
                Tem_Handle = Tem_hWnd;//记录当前句柄
                Tem_hWnd = GetParent(Tem_hWnd);//获取父级句柄
            }
            return Tem_Handle;//返回最底层的父级句柄
        }
        #endregion


        private void timer1_Tick(object sender EventArgs e)
        {
            if (this.Top < 3 && Tem_place==0)//如果窗体被移到屏幕的顶部
                {
                    if (this.Handle == FormNameAt(Cursor.Position.X Cursor.Position.Y))//当鼠标移致到该窗体上
                    {
                        panel_title.Tag = 1;//设置标识,用于判断窗体在屏幕顶部
                        timer2.Enabled = false;//不对窗体进行拉伸操作
                        this.Top = 0;//使窗体致顶
                    }
                    else
                    {
                        panel_title.Tag = 1;//设置标识,用于判断窗体在屏幕顶部
                        timer2.Enabled = true;//将窗体在顶部进行隐藏
                    }
                }
                else
                {
                    if (this.Left < 3 || this.Right > GetSystemMetrics(0) - 3)//如果窗体被移到屏幕的左端或右端
                    {
                        if (this.Left < 3)//如果窗体被移到屏幕的左端
                        {
                            if (this.Handle == FormNameAt(Cursor.Position.X Cursor.Position.Y))//当鼠标移致到该窗体上
                            {
                                panel_title.Tag = 2;//设置标识,用于判断窗体在屏幕左端
                                timer2.Enabled = false;
         

评论

共有 条评论