仿QQ面板的WinForm窗体

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

















本文转自周金桥51CTO博客,原文链接: http://blog.51cto.com/zhoufoxcn/166009 ,如需转载请自行联系原作者



相关文章
|
Linux
QT桌面(实现界面的滑动切换)
QT桌面(实现界面的滑动切换)
273 0
|
4月前
|
开发框架 前端开发 JavaScript
在Winform界面中使用自定义控件,丰富界面的效果处理
在Winform界面中使用自定义控件,丰富界面的效果处理
|
API C# 数据安全/隐私保护
ApeForms | C# WinForm 界面弹出消息通知栏 (仿Win10系统通知栏)
消息通知栏(Notification)在桌面开发中有非常重要的作用,它是一种全局的、强制的交互方式。它可以在活动窗体之外的区域向用户发出醒目的消息提示,允许用户在指引下通过简易的操作完成交互。ApeForms中提供的消息通知栏是在系统通知栏之外单独实现的一套通知功能,开发者可以自定义通知栏的内容、添加自定义的选项并设置动作回调、设置消失时间等。
905 0
|
C# Windows
C# WPF 低仿网易云音乐(PC)Banner动画控件
原文:C# WPF 低仿网易云音乐(PC)Banner动画控件 由于技术有限没能做到一模一样的动画,只是粗略地做了一下。动画有点生硬,还有就是没做出网易云音乐的立体感。代码非常简单粗暴,而且我也写有很多注释,这里就不多啰嗦了,直接贴代码。
1577 0
|
机器学习/深度学习 C# API
C# WPF 低仿网易云音乐(PC)歌词控件
原文:C# WPF 低仿网易云音乐(PC)歌词控件 提醒:本篇博客记录了修改的过程,废话比较多,需要项目源码和看演示效果的直接拉到文章最底部~   网易云音乐获取歌词的api地址 http://music.
2105 0
|
C# Windows
C# WPF QQ新消息托盘悬浮窗效果实现
原文:C# WPF QQ新消息托盘悬浮窗效果实现 今天在做一个项目的时候需要这么一个效果,但是网上找了一会发现并没有现成的给我参考(复制),但是呢,我千(到)辛(处)万(抄)苦(袭)想(复)破(制)头(粘)脑(贴)终于还是给做出来了~嘿嘿嘿 QQ新消息悬浮窗即:QQ有新消息时托盘图标会闪动,此时移动鼠标到托盘图标上就会显示一个弹框了,那么呢我把这个弹框称为“QQ新消息托盘悬浮窗”。
2633 0
|
C# Windows Web App开发
WPF 应用完全模拟 UWP 的标题栏按钮
原文:WPF 应用完全模拟 UWP 的标题栏按钮 版权声明:本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名吕毅(包含链接:http://blog.csdn.net/wpwalter/),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。
1095 0