仿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 = p_w_picpathList;
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下载。