資源簡介
198個(gè) C# Winform實(shí)例源碼,適用于學(xué)習(xí)winform開發(fā)技巧的同學(xué)
代碼片段和文件信息
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;//獲取控件中鼠標(biāo)的坐標(biāo)
????????static?int?Tem_place?=?0;
????????int?Frm_Height?=?0;
????????int?FrmHeight?=?0;
????????#endregion
????????#region??API聲明
????????//獲取當(dāng)前鼠標(biāo)下可視化控件的句柄
????????[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??獲取當(dāng)前鼠標(biāo)下可視化控件的句柄
????????///?
????????///?獲取當(dāng)前鼠標(biāo)下可視化控件的句柄
????????///?
????????///?當(dāng)前鼠標(biāo)的X坐標(biāo)
????????///?當(dāng)前鼠標(biāo)的Y坐標(biāo)
????????public?IntPtr?FormNameAt(int?x?int?y)
????????{
????????????IntPtr?Tem_hWnd;//設(shè)置存儲句柄的變量
????????????Tem_Handle?=?(IntPtr)(WindowFromPoint(x?y));//獲取當(dāng)前鼠標(biāo)下可視化控件的句柄
????????????Tem_hWnd?=?Tem_Handle;//記錄原始句柄
????????????while?(Tem_hWnd?!=?((IntPtr)0))//遍歷該句柄的父級句柄
????????????{
????????????????Tem_Handle?=?Tem_hWnd;//記錄當(dāng)前句柄
????????????????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))//當(dāng)鼠標(biāo)移致到該窗體上
????????????????????{
????????????????????????panel_title.Tag?=?1;//設(shè)置標(biāo)識,用于判斷窗體在屏幕頂部
????????????????????????timer2.Enabled?=?false;//不對窗體進(jìn)行拉伸操作
????????????????????????this.Top?=?0;//使窗體致頂
????????????????????}
????????????????????else
????????????????????{
????????????????????????panel_title.Tag?=?1;//設(shè)置標(biāo)識,用于判斷窗體在屏幕頂部
????????????????????????timer2.Enabled?=?true;//將窗體在頂部進(jìn)行隱藏
????????????????????}
????????????????}
????????????????else
????????????????{
????????????????????if?(this.Left?3?||?this.Right?>?GetSystemMetrics(0)?-?3)//如果窗體被移到屏幕的左端或右端
????????????????????{
????????????????????????if?(this.Left?3)//如果窗體被移到屏幕的左端
????????????????????????{
????????????????????????????if?(this.Handle?==?FormNameAt(Cursor.Position.X?Cursor.Position.Y))//當(dāng)鼠標(biāo)移致到該窗體上
????????????????????????????{
????????????????????????????????panel_title.Tag?=?2;//設(shè)置標(biāo)識,用于判斷窗體在屏幕左端
????????????????????????????????timer2.Enabled?=?false;
?????????
評論
共有 條評論