您的位置:首页 > 编程语言 > C#

c# 使用Button和Panel 设计伸缩面板控件

2015-12-30 18:23 1266 查看
说明: 此文使用的是Button 和Panel设计的伸缩面板

Button: 表示伸缩栏,可用别的控件表示,这里使用用于触发点击事件

Panel: 表示伸缩栏的容器,只要是容器控件就行,这里装控件用的,

没有界面优化界面,勿怪,这里只提供一个思路

效果说明: 每个按钮按循序排列,0-2 ,panel始终在你点击的那个按钮下面,且各个按钮排序不变

看效果图:

程序启动:



点击按钮 0



点击按钮1



点击按钮2



代码:

<pre name="code" class="csharp">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.Threading;

namespace Test
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
List<Button> btList = new List<Button> { };

private void Form1_Load(object sender, EventArgs e)
{
this.DoubleBuffered = true;

for (int i = 0; i < 3;i++ )
{
Button bt = new Button();
bt.Tag = i + "";
bt.Click += new EventHandler(bt_Click);
bt.Text = i+ "";
this.Controls.Add(bt);
btList.Add(bt);
}
}

void bt_Click(object sender, EventArgs e)
{
Button bt =sender as Button;

if(bt== null)
{
return;
}

int tagNum = Convert.ToInt32(bt.Tag);

panel1.Dock = DockStyle.None;

btList[tagNum].Dock = DockStyle.Top;

if (tagNum == btList.Count - 1)
{
for (int i = btList.Count-2; i >=0; --i)
{
btList[i].SendToBack();
btList[i].Dock = DockStyle.Top;
}
}
else
{
for (int i = 0; i < btList.Count; ++i)
{
if (i < tagNum)
{
btList[i].SendToBack();
btList[i].Dock = DockStyle.Top;
}
else if (i > tagNum)
{
btList[i].SendToBack();
btList[i].Dock = DockStyle.Bottom;
}
}
}

panel1.BringToFront();
panel1.Dock = DockStyle.Fill;
}

}
}



                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: