c# 使用Button和Panel 设计伸缩面板控件
2015-12-30 18:23
1266 查看
说明: 此文使用的是Button 和Panel设计的伸缩面板
Button: 表示伸缩栏,可用别的控件表示,这里使用用于触发点击事件
Panel: 表示伸缩栏的容器,只要是容器控件就行,这里装控件用的,
没有界面优化界面,勿怪,这里只提供一个思路
效果说明: 每个按钮按循序排列,0-2 ,panel始终在你点击的那个按钮下面,且各个按钮排序不变
看效果图:
程序启动:
![](http://img.blog.csdn.net/20151230181636570?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
点击按钮 0
![](http://img.blog.csdn.net/20151230181648990?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
点击按钮1
![](http://img.blog.csdn.net/20151230181656675?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
点击按钮2
![](http://img.blog.csdn.net/20151230181706482?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
代码:
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; } } }
相关文章推荐
- C#之读取XML文件内容
- .Net实现文件下载Demo
- c#中的通配符怎么用???
- C#中String如何判断是否为空
- C# 序列化与反序列化
- C# 标准差计算
- C#线程基础
- C# 获取本机“设备管理器”信息列表
- .NET web C#通过剪切板取出word中图片
- c#获取今天开始时间的时间戳,以及时间戳和时间格式转换
- 1、C#语法基础知识
- c#中 字节数组到浮点型转换
- C#中用schema验证xml的合法性
- 文件管理File类
- C# 货币金额中文(英文)大写转换方法-工具类
- C#字节数组byte[]填充问题
- C#结构体和字节数组的转换
- C#导出excel
- c# sha256 16进制 64位 签名
- c# 将十进制数字转换成字节数组