110,566
社区成员
发帖
与我相关
我的任务
分享
// panel1
//
this.panel1.BackColor = System.Drawing.SystemColors.Window;
this.panel1.Controls.Add(this.panel2); //panel2 在 panel1 里面
this.panel1.Location = new System.Drawing.Point(12, 12);
this.panel1.Name = "panel1";
this.panel1.Size = new System.Drawing.Size(268, 219);
this.panel1.TabIndex = 0;
//
// panel2
//
this.panel2.BackColor = System.Drawing.SystemColors.Control;
this.panel2.Controls.Add(this.button1);
this.panel2.Location = new System.Drawing.Point(28, 143);
this.panel2.Name = "panel2";
this.panel2.Size = new System.Drawing.Size(200, 63);
this.panel2.TabIndex = 0;
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
panel1.MouseEnter += new EventHandler(panel1_MouseEnter);
panel1.MouseLeave += new EventHandler(panel1_MouseLeave);
panel2.MouseEnter += new EventHandler(panel2_MouseEnter);
panel2.MouseLeave+=new EventHandler(panel2_MouseLeave);
panel2.Visible = false;
}
void panel2_MouseEnter(object sender, EventArgs e)
{
panel2.Visible = true;
}
void panel2_MouseLeave(object sender, EventArgs e)
{
panel2.Visible = false;
}
void panel1_MouseLeave(object sender, EventArgs e)
{
var rect = new Rectangle(PointToScreen(panel2.Location), panel2.Size); //将 panel2 所在区域换算到屏幕坐标
if (rect.Contains(MousePosition)) return; //如果换算到屏幕坐标的鼠标位置在矩形中则不关闭 panel2 的显示
panel2.Visible = false;
}
void panel1_MouseEnter(object sender, EventArgs e)
{
panel2.Visible = true;
}
}
private void splitContainer1_Panel1_MouseEnter(object sender, EventArgs e)
{
splitContainer1.Panel2Collapsed = true;
}
private void splitContainer1_Panel1_MouseLeave(object sender, EventArgs e)
{
splitContainer1.Panel2Collapsed = false;
}