仿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. namespace QQPanelDemo
  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.     public partial class MainForm : Form
  21.     {
  22.         public MainForm()
  23.         {
  24.             InitializeComponent();
  25.         }
  26.         //显示我的好友名单菜单
  27.         private void btnMyFriend_Click(object sender, EventArgs e)
  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.         private void MainForm_Load(object sender, EventArgs e)
  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.         private void btnMyStranger_Click(object sender, EventArgs e)
  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.         private void btnMyColleague_Click(object sender, EventArgs e)
  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. }

 

程序运行效果:

仿QQ面板的WinForm窗体_第1张图片

 

仿QQ面板的WinForm窗体_第2张图片

 

仿QQ面板的WinForm窗体_第3张图片

 

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

你可能感兴趣的:(c#,winform,qq,imagelist,listview,button,通讯)