namespace HideKit { partial class Form1 { /// <summary> /// 必需的设计器变量。 /// </summary> private System.ComponentModel.IContainer components = null; /// <summary> /// 清理所有正在使用的资源。 /// </summary> /// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param> protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows 窗体设计器生成的代码 /// <summary> /// 设计器支持所需的方法 - 不要 /// 使用代码编辑器修改此方法的内容。 /// </summary> private void InitializeComponent() { this.components = new System.ComponentModel.Container(); System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form1)); this.panel1 = new System.Windows.Forms.Panel(); this.panel3 = new System.Windows.Forms.Panel(); this.panel2 = new System.Windows.Forms.Panel(); this.pictureBox1 = new System.Windows.Forms.PictureBox(); this.timer1 = new System.Windows.Forms.Timer(this.components); this.timer2 = new System.Windows.Forms.Timer(this.components); this.panel4 = new System.Windows.Forms.Panel(); this.panel1.SuspendLayout(); this.panel2.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); this.SuspendLayout(); // // panel1 // this.panel1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.panel1.Controls.Add(this.panel4); this.panel1.Controls.Add(this.panel3); this.panel1.Controls.Add(this.panel2); this.panel1.Location = new System.Drawing.Point(0, 0); this.panel1.Name = "panel1"; this.panel1.Size = new System.Drawing.Size(168, 354); this.panel1.TabIndex = 0; // // panel3 // this.panel3.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("panel3.BackgroundImage"))); this.panel3.Dock = System.Windows.Forms.DockStyle.Bottom; this.panel3.Location = new System.Drawing.Point(0, 348); this.panel3.Name = "panel3"; this.panel3.Size = new System.Drawing.Size(166, 4); this.panel3.TabIndex = 1; // // panel2 // this.panel2.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("panel2.BackgroundImage"))); this.panel2.Controls.Add(this.pictureBox1); this.panel2.Dock = System.Windows.Forms.DockStyle.Top; this.panel2.Location = new System.Drawing.Point(0, 0); this.panel2.Name = "panel2"; this.panel2.Size = new System.Drawing.Size(166, 24); this.panel2.TabIndex = 0; // // pictureBox1 // this.pictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox1.Image"))); this.pictureBox1.Location = new System.Drawing.Point(150, 9); this.pictureBox1.Name = "pictureBox1"; this.pictureBox1.Size = new System.Drawing.Size(9, 8); this.pictureBox1.TabIndex = 0; this.pictureBox1.TabStop = false; this.pictureBox1.Click += new System.EventHandler(this.pictureBox1_Click); // // timer1 // this.timer1.Enabled = true; this.timer1.Interval = 30; this.timer1.Tick += new System.EventHandler(this.timer1_Tick); // // timer2 // this.timer2.Interval = 3000; this.timer2.Tick += new System.EventHandler(this.timer2_Tick); // // panel4 // this.panel4.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("panel4.BackgroundImage"))); this.panel4.Dock = System.Windows.Forms.DockStyle.Fill; this.panel4.Location = new System.Drawing.Point(0, 24); this.panel4.Name = "panel4"; this.panel4.Size = new System.Drawing.Size(166, 324); this.panel4.TabIndex = 2; // // Form1 // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(417, 354); this.Controls.Add(this.panel1); this.Name = "Form1"; this.Text = "Form1"; this.Load += new System.EventHandler(this.Form1_Load); this.panel1.ResumeLayout(false); this.panel2.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); this.ResumeLayout(false); } #endregion private System.Windows.Forms.Panel panel1; private System.Windows.Forms.Panel panel3; private System.Windows.Forms.Panel panel2; private System.Windows.Forms.Timer timer1; private System.Windows.Forms.Timer timer2; private System.Windows.Forms.PictureBox pictureBox1; private System.Windows.Forms.Panel panel4; } }
Designer.cs
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 HideKit { public partial class Form1 : Form { public Form1() { InitializeComponent(); } #region 公共变量 IntPtr Tem_Handle;//获取控件及窗体的句柄 bool Tem_show = false; #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); #endregion private void Form1_Load(object sender, EventArgs e) { KitInitialization(panel1); } public void KitInitialization(Panel Pane) { Pane.Left = -Pane.Width + 3; Pane.Top = 0; Pane.Height = this.Height-35; } #region 获取当前鼠标下可视化控件的句柄 /// <summary> /// 获取当前鼠标下可视化控件的句柄 /// </summary> /// <param x="int">当前鼠标的X坐标</param> /// <param y="int">当前鼠标的Y坐标</param> public IntPtr FormNameAt(int x, int y, Panel P) { IntPtr Tem_hWnd;//设置存储句柄的变量 Tem_Handle = (IntPtr)(WindowFromPoint(x, y));//获取当前鼠标下可视化控件的句柄 Tem_hWnd = Tem_Handle;//记录原始句柄 while (Tem_hWnd != P.Handle)//遍历该句柄的父级句柄 { if (Tem_hWnd == this.Handle || Tem_hWnd == ((IntPtr)0)) break; Tem_Handle = Tem_hWnd;//记录当前句柄 Tem_hWnd = GetParent(Tem_hWnd);//获取父级句柄 } return Tem_hWnd;//返回最底层的父级句柄 } #endregion private void timer1_Tick(object sender, EventArgs e) { if (panel1.Handle == FormNameAt(Cursor.Position.X, Cursor.Position.Y, panel1))//当鼠标移致到该窗体上 { timer2.Stop(); panel1.Left = 0; Tem_show = true; } else { Tem_show = false; timer2.Start(); } } private void timer2_Tick(object sender, EventArgs e) { if (!Tem_show) { KitInitialization(panel1); timer2.Stop(); } } private void pictureBox1_Click(object sender, EventArgs e) { Tem_show = false; KitInitialization(panel1); timer2.Stop(); } } }
.cs
时间: 2024-12-31 17:25:25