`
jinvasshole
  • 浏览: 767273 次
文章分类
社区版块
存档分类
最新评论

仿QQ面板的WinForm窗体

 
阅读更多

仿QQ面板的WinForm窗体
说明:前几天在一个朋友那里看到做得很漂亮的一个企业及时通讯软件,利用C#编写,完全没有利用第三方控件就实现了类似于QQ面板的效果,非常漂亮。
回家之后凭着自己的记忆和查阅MSDN尝试实现了一下,初步实现了类似效果,现在奉献给大家。
在程序中用到了三种控件(不包括窗体类):ImageList、Button和ListView。Button控件显示好友分组,点击之后显示相应好友分组的信息;ImageList控件用于存放好友头像;ListView控件用于显示好友列表。在程序中不是用Location来定位控件的位置,而是使用Dock属性来设置控件的停靠,并随着父控件一起调整大小。

程序核心代码:

  1. usingSystem;
  2. usingSystem.Collections.Generic;
  3. usingSystem.ComponentModel;
  4. usingSystem.Data;
  5. usingSystem.Drawing;
  6. usingSystem.Text;
  7. usingSystem.Windows.Forms;
  8. namespaceQQPanelDemo
  9. {
  10. ///
  11. ///说明:前几天在一个朋友那里看到做得很漂亮的一个企业及时通讯软件,利用C#编写,完全没有利用第三方控件就实现了类似于QQ面板的效果,非常漂亮。
  12. ///回家之后凭着自己的记忆和查阅MSDN尝试实现了一下,初步实现了类似效果,现在奉献给大家。
  13. ///在程序中用到了三种控件(不包括窗体类):ImageList、Button和ListView。
  14. ///Button控件显示好友分组,点击之后显示相应好友分组的信息;ImageList控件用于存放好友头像;ListView控件用于显示好友列表。
  15. ///在程序中不是用Location来定位控件的位置,而是使用Dock属性来设置控件的停靠,并随着父控件一起调整大小。
  16. ///作者:周公
  17. ///日期:2008-5-31
  18. ///原创地址:http://blog.csdn.net/zhoufoxcn/archive/2008/05/31/2499194.aspx
  19. ///
  20. publicpartialclassMainForm:Form
  21. {
  22. publicMainForm()
  23. {
  24. InitializeComponent();
  25. }
  26. //显示我的好友名单菜单
  27. privatevoidbtnMyFriend_Click(objectsender,EventArgse)
  28. {
  29. //设置停靠
  30. listView.Dock=DockStyle.None;
  31. btnMyFriend.Dock=DockStyle.Top;
  32. btnMyColleague.Dock=DockStyle.Bottom;
  33. btnMyStranger.SendToBack();
  34. btnMyStranger.Dock=DockStyle.Bottom;
  35. listView.BringToFront();
  36. listView.Dock=DockStyle.Bottom;
  37. //添加项
  38. listView.Clear();
  39. listView.Items.Add("老婆","老婆",5);
  40. listView.Items.Add("小蜜","小蜜",1);
  41. listView.Items.Add("周公","周公",7);
  42. listView.Items.Add("情人","情人",7);
  43. listView.Items.Add("丽丽","丽丽",6);
  44. listView.Items.Add("花花","花花",8);
  45. listView.Items.Add("贝贝","贝贝",9);
  46. }
  47. privatevoidMainForm_Load(objectsender,EventArgse)
  48. {
  49. //设置停靠
  50. listView.Dock=DockStyle.None;
  51. btnMyFriend.Dock=DockStyle.Top;
  52. btnMyColleague.Dock=DockStyle.Bottom;
  53. btnMyStranger.SendToBack();
  54. btnMyStranger.Dock=DockStyle.Bottom;
  55. listView.BringToFront();
  56. listView.Dock=DockStyle.Bottom;
  57. //添加项
  58. listView.Clear();
  59. listView.LargeImageList=imageList;
  60. listView.Items.Add("老婆","老婆",5);
  61. listView.Items.Add("小蜜","小蜜",1);
  62. listView.Items.Add("丽丽","丽丽",4);
  63. listView.Items.Add("周公","周公",7);
  64. listView.Items.Add("情人","情人",7);
  65. listView.Items.Add("花花","花花",8);
  66. listView.Items.Add("贝贝","贝贝",9);
  67. }
  68. //显示我的陌生人菜单
  69. privatevoidbtnMyStranger_Click(objectsender,EventArgse)
  70. {
  71. //设置停靠
  72. listView.Dock=DockStyle.None;
  73. btnMyStranger.SendToBack();
  74. btnMyStranger.Dock=DockStyle.Top;
  75. btnMyColleague.SendToBack();
  76. btnMyColleague.Dock=DockStyle.Top;
  77. btnMyFriend.SendToBack();
  78. btnMyFriend.Dock=DockStyle.Top;
  79. listView.Dock=DockStyle.Top;
  80. ////添加项
  81. listView.Clear();
  82. listView.Items.Add("赌友","赌友",16);
  83. listView.Items.Add("牌友","牌友",14);
  84. listView.Items.Add("聊友","聊友",15);
  85. listView.Items.Add("吹友","吹友",12);
  86. listView.Items.Add("侃友","侃友",11);
  87. listView.Items.Add("驴友","驴友",9);
  88. listView.Items.Add("书友","书友",10);
  89. listView.Items.Add("笔友","笔友",13);
  90. }
  91. //显示我的同事菜单
  92. privatevoidbtnMyColleague_Click(objectsender,EventArgse)
  93. {
  94. //设置停靠
  95. listView.Dock=DockStyle.None;
  96. btnMyColleague.Dock=DockStyle.Top;
  97. btnMyFriend.SendToBack();
  98. btnMyFriend.Dock=DockStyle.Top;
  99. btnMyStranger.Dock=DockStyle.Bottom;
  100. listView.Dock=DockStyle.Bottom;
  101. listView.BringToFront();
  102. ////添加项
  103. listView.Items.Clear();
  104. listView.Items.Add("老板","老板",2);
  105. listView.Items.Add("董事长","董事长",3);
  106. listView.Items.Add("组长","组长",4);
  107. listView.Items.Add("班长","班长",17);
  108. listView.Items.Add("妇女主任","妇女主任",16);
  109. listView.Items.Add("行政主管","行政主管",15);
  110. listView.Items.Add("楼道大妈","楼道大妈",2);
  111. listView.Items.Add("办公室主任","办公室主任",3);
  112. listView.Items.Add("经理办","经理办",4);
  113. listView.Items.Add("党委办","党委办",17);
  114. listView.Items.Add("宣传办","宣传办",16);
  115. listView.Items.Add("退休办","退休办",15);
  116. }
  117. }
  118. }

程序运行效果:

说明:可演示和编译执行的源代码请到http://download.csdn.net/source/476468下载。

分享到:
评论

相关推荐

    神经网络与量子计算的交叉研究.pptx

    神经网络与量子计算的交叉研究.pptx

    非线性端口 MEMS 麦克风的 Simscape 模型.zip

    1.版本:matlab2014/2019a/2021a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

    用于超声成像和仿真的 MATLAB 工具箱.zip

    1.版本:matlab2014/2019a/2021a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

    HFI高频注入仿真—matlab.zip

    1.版本:matlab2014/2019a/2021a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

    北京工商大学上网登陆版源码.zip

    android 源码学习. 资料部分来源于合法的互联网渠道收集和整理,供大家学习参考与交流。本人不对所涉及的版权问题或内容负法律责任。如有侵权,请通知本人删除。感谢CSDN官方提供大家交流的平台

    攻击离开优化器 (ALO)matlab代码.zip

    1.版本:matlab2014/2019a/2021a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

    Ruby基于Ruby的MKS rebase脚本 Ruby语言基础

    【Ruby】基于Ruby的MKS rebase脚本 Ruby语言基础 将MKS网盘中其他工程路径下的工程文件批量rebase到目标工程路径。 【Ruby】基于Ruby的MKS rebase脚本 Ruby语言基础

    18.CSGO赛事管理系统的设计与实现-Springboot+ Mysql+Java+ B/S结构(可运行源码+数据库+设计文档

    18.CSGO赛事管理系统的设计与实现|Springboot+ Mysql+Java+ B/S结构(可运行源码(含数据库脚本)+开发文档+lw(高分毕设项目) 详细介绍链接:http://t.csdnimg.cn/CDBjW 内容概要: 全套项目源码+详尽文档,一站式解决您的学习与项目需求。 适用人群: 计算机、通信、人工智能、自动化等专业的学生、老师及从业者。 使用场景及目标: 无论是毕设、期末大作业还是课程设计,一键下载,轻松部署,助您轻松完成项目。 项目代码经过调试测试,确保直接运行,节省您的时间和精力。 其他说明: 项目整体具有较高的学习借鉴价值,基础能力强的可以在此基础上修改调整,以实现不同的功能。

    46.书籍学习平台的设计与实现-Springboot+ Mysql+Java+ B/S结构(可运行源码+数据库+设计文档)论坛

    46.书籍学习平台的设计与实现|Springboot+ Mysql+Java+ B/S结构(可运行源码+数据库+设计文档)论坛,公告,付费专区,免费专区,销售,会员办理,书籍分类 详细设计文档链接:http://t.csdnimg.cn/GSeDN 内容概要: 全套项目源码+详尽文档,一站式解决您的学习与项目需求。 适用人群: 计算机、通信、人工智能、自动化等专业的学生、老师及从业者。 使用场景及目标: 无论是毕设、期末大作业还是课程设计,一键下载,轻松部署,助您轻松完成项目。 项目代码经过调试测试,确保直接运行,节省您的时间和精力。 其他说明: 项目整体具有较高的学习借鉴价值,基础能力强的可以在此基础上修改调整,以实现不同的功能。

    基于OpenCV+Tensorflow的银行卡号识别源码+使用文档+全部资料(优秀项目).zip

    【资源说明】 基于OpenCVTensorflow的银行卡号识别源码+使用文档+全部资料(优秀项目).zip基于OpenCVTensorflow的银行卡号识别源码+使用文档+全部资料(优秀项目).zip基于OpenCVTensorflow的银行卡号识别源码+使用文档+全部资料(优秀项目).zip 【备注】 1、该项目是个人高分毕业设计项目源码,已获导师指导认可通过,答辩评审分达到95分 2、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 3、本项目适合计算机相关专业(如软件工程、计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也可作为毕业设计、课程设计、作业、项目初期立项演示等,当然也适合小白学习进阶。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!

    AI快速生成原创音乐的平台.txt

    AI快速生成原创音乐的平台.txt

    决斗者算法是一种元启发式优化算法matlab代码.zip

    1.版本:matlab2014/2019a/2021a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

    xiuno模板知乎蓝魔改版源码附多个插件.zip

    xiuno模板知乎蓝魔改版源码附多个插件

    学习 C语言 编程语言 中的实敲代码仓库,提升自我的编程思维,编程能力 坚持下去.zip

    C语言诞生于美国的贝尔实验室,由丹尼斯·里奇(Dennis MacAlistair Ritchie)以肯尼斯·蓝·汤普森(Kenneth Lane Thompson)设计的B语言为基础发展而来,在它的主体设计完成后,汤普森和里奇用它完全重写了UNIX,且随着UNIX的发展,c语言也得到了不断的完善。为了利于C语言的全面推广,许多专家学者和硬件厂商联合组成了C语言标准委员会,并在之后的1989年,诞生了第一个完备的C标准,简称“C89”,也就是“ANSI C”,截至2020年,最新的C语言标准为2018年6月发布的“C18”。 [5] C语言之所以命名为C,是因为C语言源自Ken Thompson发明的B语言,而B语言则源自BCPL语言。 1967年,剑桥大学的Martin Richards对CPL语言进行了简化,于是产生了BCPL(Basic Combined Programming Language)语言。

    FS-S01059_STEP_01A.zip

    FS-S01059_STEP_01A.zip

    监听自身被卸载.zip

    android 源码学习. 资料部分来源于合法的互联网渠道收集和整理,供大家学习参考与交流。本人不对所涉及的版权问题或内容负法律责任。如有侵权,请通知本人删除。感谢CSDN官方提供大家交流的平台

    基于遗传算法的公交排班系统分析matlab代码.zip

    1.版本:matlab2014/2019a/2021a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

    基于深度强化学习的住宅区电动汽车充电策略

    基于深度强化学习的住宅区电动汽车充电策略是一种用于优化住宅区电动汽车充电行为的算法。面对日益增长的电动汽车数量和有限的充电资源,该算法结合了深度学习和强化学习方法,旨在实现住宅区电动汽车充电的智能调度和管理。

    第5章 s7200编程语言及指令系统.ppt

    第5章 s7200编程语言及指令系统.ppt

    基于遗传算法将电子卡车和电子三轮车路由到街道街区的客户matlab代码.zip

    1.版本:matlab2014/2019a/2021a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

Global site tag (gtag.js) - Google Analytics