Winform中实现仿XP系统的任务栏菜单效果(附代码下载)
程序员文章站
2022-12-09 14:34:09
场景 效果 注: 博客主页: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的程序猿 获取编程相关电子书、教程推送与免费下载。 实现 新建一个Form窗体,设计页面布局如下 折叠效果的向上和向下按钮是PictureBox,从上往下依次的Tag标签 ......
场景
效果
注:
博客主页:
关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。
实现
新建一个form窗体,设计页面布局如下
折叠效果的向上和向下按钮是picturebox,从上往下依次的tag标签为1,2,3
三个picturebox都绑定同一个点击事件,在点击事件中根据传递的tag标签的值在switch-case中进行处理。
在switch-case中分别将对应的一组picturebox和panel对象赋值给上面声明的静态的两个控件对象。
下面要隐藏的panel对象的tag属性默认为0,在上面switch-case中获取一组对应的控件对象后进行判断,
如果tag为0或者2则是将panel隐藏,同时将tag标签设置为1,表示隐藏。
如果是1,则表示已经处于隐藏状态,则会将其显示并将tag设置为2。
关键代码
private static panel var_panel = new panel(); private static picturebox var_pict = new picturebox(); private static int var_i = 0; private font var_font = new font("宋体", 9); private void picturebox_1_click(object sender, eventargs e) { var_i = convert.toint16(((picturebox)sender).tag.tostring()); switch (var_i) { case 1: { var_panel = panel_gut_1; var_pict = picturebox_1; break; } case 2: { var_panel = panel_gut_2; var_pict = picturebox_2; break; } case 3: { var_panel = panel_gut_3; var_pict = picturebox_3; break; } } if (convert.toint16(var_panel.tag.tostring()) == 0 || convert.toint16(var_panel.tag.tostring()) == 2) { var_panel.tag = 1;//隐藏标识 var_pict.image = null; var_pict.image = properties.resources.朝下按钮; var_panel.visible = false; } else { if (convert.toint16(var_panel.tag.tostring()) == 1) { var_panel.tag = 2;//显示标识 var_pict.image = null; var_pict.image = properties.resources.朝上按钮; var_panel.visible = true; } } } private void form1_load(object sender, eventargs e) { picturebox_1.image = null; picturebox_1.image = properties.resources.朝上按钮; picturebox_2.image = null; picturebox_2.image = properties.resources.朝上按钮; picturebox_3.image = null; picturebox_3.image = properties.resources.朝上按钮; var_font = label_1.font; } private void label_1_mouseenter(object sender, eventargs e) { ((label)sender).forecolor = color.gray; ((label)sender).font = new font(var_font, var_font.style | fontstyle.underline); } private void label_1_mouseleave(object sender, eventargs e) { ((label)sender).forecolor = color.black; ((label)sender).font = new font(var_font, var_font.style); }
代码下载
https://download.csdn.net/download/badao_liumang_qizhi/12025648