如何创建一个简单的可展开/折叠面板
如何在C#.NET中为Windows Forms创建一个简单的可展开/折叠菜单面板。
引言
我曾在Google上搜索很多C#代码,以创建应用程序的可展开菜单或面板。我找到了,但需要编写大量的代码,而且非常耗时。为什么我们要浪费宝贵的时间,而有简单易行的方法可以创建相同的功能呢?我在这里解释我创建可展开/折叠菜单的方法。请参阅下图
Using the Code
请遵循以下步骤
- 创建一个Windows Forms应用程序(例如:
frmMain
) - 添加一个Panel控件,并将其停靠在您想要的位置(例如:
pnlMenu
) - 在主面板内添加一个Panel(例如:
pnlMenu
->pnlMenuGroup1
) - 将一个Button或其他控件(如label/picturebox)添加到内部面板,并将其停靠在顶部 - 这是菜单头。(例如:
btnMenuGroup1
- 按钮高度 = 25) - 将Button控件作为子菜单添加到内部面板,并将其停靠在顶部。现在它看起来像一个菜单组。(例如:
btnAbout
- 按钮高度 = 25) - 创建更多像现在这样创建的“菜单组”。(按照步骤1到5。)
- 将图像(上/下箭头)添加到将作为您的“菜单头”的Button。
*** 添加 Picturebox
控件并加载图像,并调整透明度,以使您的窗口具有更多的视觉风格。
//
// frmMain
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;
namespace ExpandablePanelSample
{
public partial class frmMain : Form
{
public frmMain()
{
InitializeComponent();
}
private void frmMain_Load(object sender, EventArgs e)
{
this.Width = Screen.PrimaryScreen.WorkingArea.Width;
this.Height = Screen.PrimaryScreen.WorkingArea.Height;
Left = Top = 0;
pnlMenuGroup1.Height = 25;
pnlMenuGroup2.Height = 25;
pnlMenuGroup3.Height = 25;
btnMenuGroup1.Image = Properties.Resources.down;
btnMenuGroup2.Image = Properties.Resources.down;
btnMenuGroup3.Image = Properties.Resources.down;
}
private void btnMenuGroup1_Click(object sender, EventArgs e)
{
if (pnlMenuGroup1.Height == 25)
{
pnlMenuGroup1.Height = (25 *4) + 2;
btnMenuGroup1.Image = Properties.Resources.up;
}
else
{
pnlMenuGroup1.Height = 25;
btnMenuGroup1.Image = Properties.Resources.down;
}
}
private void btnMenuGroup2_Click(object sender, EventArgs e)
{
if (pnlMenuGroup2.Height == 25)
{
pnlMenuGroup2.Height = (25 * 4) + 2;
btnMenuGroup2.Image = Properties.Resources.up;
}
else
{
pnlMenuGroup2.Height = 25;
btnMenuGroup2.Image = Properties.Resources.down;
}
}
private void btnMenuGroup3_Click(object sender, EventArgs e)
{
if (pnlMenuGroup3.Height == 25)
{
pnlMenuGroup3.Height = (25 * 4) + 2;
btnMenuGroup3.Image = Properties.Resources.up;
}
else
{
pnlMenuGroup3.Height = 25;
btnMenuGroup3.Image = Properties.Resources.down;
}
}
private void btnAbout_Click(object sender, EventArgs e)
{
frmAbout frmChild = new frmAbout();
frmChild.MdiParent = this;
frmChild.Show();
}
}
}
//
有关详细信息,请下载随附的项目示例。
编程愉快!