- 1、本文档共5页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Winform折叠菜单实现
Winform折叠菜单实现
在我还没工作前,听朋友说起他面试时遇到的情况,当时面试他的考官要他用C#实现折叠菜单效果,不用第三方控件,对于当时准备不充分的他可谓是来了个措手不及呀!回来后告诉了我们,抱着试试的心里,尝试实现一番,呵呵,没想到还是让我实现了!现在翻出当时实现的代码供初学者学习,高手免了。这个示例用四个button、四个label和一个panel来实现。下面是截图:
准备开始阶段,四个button、四个label和一个panel,调整好它们之间的位置:
运行后的截图:
图一
图二
图三
图四
实现代码:
Form1.cs
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;
namespace WindowsApplication1{??? public partial class Form1 : Form??? {??????? public Form1()??????? {??????????? InitializeComponent();??????? }??????? ListButton list = new ListButton();??????? private void button1_Click(object sender, EventArgs e)??????? {??????????? this.label1.Visible = true;??????????? this.label2.Visible = false;??????????? this.label3.Visible = false;??????????? this.label4.Visible = false;??????????? ChangeLocation(this.button1);??????? }
??????? private void button2_Click(object sender, EventArgs e)??????? {??????????? this.label1.Visible = false;??????????? this.label2.Visible = true;??????????? this.label3.Visible = false;??????????? this.label4.Visible = false;??????????? ChangeLocation(this.button2);??????? }??????? /// summary??????? /// 改变按钮位置??????? /// /summary??????? /// param name=btn/param??????? private void ChangeLocation(Button btn)??????? {??????????? int num1 = int.Parse(btn.Name.Substring(6));//num1 代表本按钮的名称序号??????????? string direction = null;//定义一个方向变量??????????? if (btn.Top this.panel1.Top)//如果本按钮的纵坐标大于面板的纵坐标??????????? {??????????????? direction = up;//设置方向变量的值为“up” 即代表菜单向上翻??????????? }??????????? else if (btn.Top + btn.Height this.panel1.Top) //如果本按钮的纵坐标加本按钮的高度小于面板的纵坐标??????????? {??????????????? direction = down;//设置方向变量的值为“down” 即代表菜单向下翻??????????? }??????????? if (direction != null)//如果方向变量的值不为空??????????? {??????????????? btn.Top = this.button1.Top + (btn.Height) * (num1 - 1);//设置本按钮的纵坐标等于本折叠菜单的第一个按钮的纵坐标加上在本按钮之上的几个按钮的高度之和???????????????
文档评论(0)