仿QQ面板的WinForm窗体
说明:前几天在一个朋友那里看到做得很漂亮的一个企业及时通讯软件,利用C#编写,完全没有利用第三方控件就实现了类似于QQ面板的效果,非常漂亮。
回家之后凭着自己的记忆和查阅MSDN尝试实现了一下,初步实现了类似效果,现在奉献给大家。
在程序中用到了三种控件(不包括窗体类):ImageList、Button和ListView。Button控件显示好友分组,点击之后显示相应好友分组的信息;ImageList控件用于存放好友头像;ListView控件用于显示好友列表。在程序中不是用Location来定位控件的位置,而是使用Dock属性来设置控件的停靠,并随着父控件一起调整大小。
程序核心代码:
- usingSystem;
- usingSystem.Collections.Generic;
- usingSystem.ComponentModel;
- usingSystem.Data;
- usingSystem.Drawing;
- usingSystem.Text;
- usingSystem.Windows.Forms;
- namespaceQQPanelDemo
- {
- ///
- ///说明:前几天在一个朋友那里看到做得很漂亮的一个企业及时通讯软件,利用C#编写,完全没有利用第三方控件就实现了类似于QQ面板的效果,非常漂亮。
- ///回家之后凭着自己的记忆和查阅MSDN尝试实现了一下,初步实现了类似效果,现在奉献给大家。
- ///在程序中用到了三种控件(不包括窗体类):ImageList、Button和ListView。
- ///Button控件显示好友分组,点击之后显示相应好友分组的信息;ImageList控件用于存放好友头像;ListView控件用于显示好友列表。
- ///在程序中不是用Location来定位控件的位置,而是使用Dock属性来设置控件的停靠,并随着父控件一起调整大小。
- ///作者:周公
- ///日期:2008-5-31
- ///原创地址:http://blog.csdn.net/zhoufoxcn/archive/2008/05/31/2499194.aspx
- ///
- publicpartialclassMainForm:Form
- {
- publicMainForm()
- {
- InitializeComponent();
- }
- //显示我的好友名单菜单
- privatevoidbtnMyFriend_Click(objectsender,EventArgse)
- {
- //设置停靠
- listView.Dock=DockStyle.None;
- btnMyFriend.Dock=DockStyle.Top;
- btnMyColleague.Dock=DockStyle.Bottom;
- btnMyStranger.SendToBack();
- btnMyStranger.Dock=DockStyle.Bottom;
- listView.BringToFront();
- listView.Dock=DockStyle.Bottom;
- //添加项
- listView.Clear();
- listView.Items.Add("老婆","老婆",5);
- listView.Items.Add("小蜜","小蜜",1);
- listView.Items.Add("周公","周公",7);
- listView.Items.Add("情人","情人",7);
- listView.Items.Add("丽丽","丽丽",6);
- listView.Items.Add("花花","花花",8);
- listView.Items.Add("贝贝","贝贝",9);
- }
- privatevoidMainForm_Load(objectsender,EventArgse)
- {
- //设置停靠
- listView.Dock=DockStyle.None;
- btnMyFriend.Dock=DockStyle.Top;
- btnMyColleague.Dock=DockStyle.Bottom;
- btnMyStranger.SendToBack();
- btnMyStranger.Dock=DockStyle.Bottom;
- listView.BringToFront();
- listView.Dock=DockStyle.Bottom;
- //添加项
- listView.Clear();
- listView.LargeImageList=imageList;
- listView.Items.Add("老婆","老婆",5);
- listView.Items.Add("小蜜","小蜜",1);
- listView.Items.Add("丽丽","丽丽",4);
- listView.Items.Add("周公","周公",7);
- listView.Items.Add("情人","情人",7);
- listView.Items.Add("花花","花花",8);
- listView.Items.Add("贝贝","贝贝",9);
- }
- //显示我的陌生人菜单
- privatevoidbtnMyStranger_Click(objectsender,EventArgse)
- {
- //设置停靠
- listView.Dock=DockStyle.None;
- btnMyStranger.SendToBack();
- btnMyStranger.Dock=DockStyle.Top;
- btnMyColleague.SendToBack();
- btnMyColleague.Dock=DockStyle.Top;
- btnMyFriend.SendToBack();
- btnMyFriend.Dock=DockStyle.Top;
- listView.Dock=DockStyle.Top;
- 添加项
- listView.Clear();
- listView.Items.Add("赌友","赌友",16);
- listView.Items.Add("牌友","牌友",14);
- listView.Items.Add("聊友","聊友",15);
- listView.Items.Add("吹友","吹友",12);
- listView.Items.Add("侃友","侃友",11);
- listView.Items.Add("驴友","驴友",9);
- listView.Items.Add("书友","书友",10);
- listView.Items.Add("笔友","笔友",13);
- }
- //显示我的同事菜单
- privatevoidbtnMyColleague_Click(objectsender,EventArgse)
- {
- //设置停靠
- listView.Dock=DockStyle.None;
- btnMyColleague.Dock=DockStyle.Top;
- btnMyFriend.SendToBack();
- btnMyFriend.Dock=DockStyle.Top;
- btnMyStranger.Dock=DockStyle.Bottom;
- listView.Dock=DockStyle.Bottom;
- listView.BringToFront();
- 添加项
- listView.Items.Clear();
- listView.Items.Add("老板","老板",2);
- listView.Items.Add("董事长","董事长",3);
- listView.Items.Add("组长","组长",4);
- listView.Items.Add("班长","班长",17);
- listView.Items.Add("妇女主任","妇女主任",16);
- listView.Items.Add("行政主管","行政主管",15);
- listView.Items.Add("楼道大妈","楼道大妈",2);
- listView.Items.Add("办公室主任","办公室主任",3);
- listView.Items.Add("经理办","经理办",4);
- listView.Items.Add("党委办","党委办",17);
- listView.Items.Add("宣传办","宣传办",16);
- listView.Items.Add("退休办","退休办",15);
- }
- }
- }
程序运行效果:
说明:可演示和编译执行的源代码请到http://download.csdn.net/source/476468下载。