http://blog.csdn.net/zhoufoxcn/archive/2008/05/31/2499194.aspx
仿QQ面板的WinForm窗體
說明:前幾天在一個朋友那裏看到做得很漂亮的一個企業及時通訊軟件,利用C#編寫,完全沒有利用第三方控件就實現了類似於QQ面板的效果,非常漂亮。
回家之後憑着自己的記憶和查閱MSDN嘗試實現了一下,初步實現了類似效果,現在奉獻給大家。
在程序中用到了三種控件(不包括窗體類):ImageList、Button和ListView。Button控件顯示好友分組,點擊之後顯示相應好友分組的信息;ImageList控件用於存放好友頭像;ListView控件用於顯示好友列表。在程序中不是用Location來定位控件的位置,而是使用Dock屬性來設置控件的停靠,並隨着父控件一起調整大小。
程序核心代碼:
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Text;
- using System.Windows.Forms;
- namespace QQPanelDemo
- {
- /// <SUMMARY></SUMMARY>
- /// 說明:前幾天在一個朋友那裏看到做得很漂亮的一個企業及時通訊軟件,利用C#編寫,完全沒有利用第三方控件就實現了類似於QQ面板的效果,非常漂亮。
- ///回家之後憑着自己的記憶和查閱MSDN嘗試實現了一下,初步實現了類似效果,現在奉獻給大家。
- ///在程序中用到了三種控件(不包括窗體類):ImageList、Button和ListView。
- ///Button控件顯示好友分組,點擊之後顯示相應好友分組的信息;ImageList控件用於存放好友頭像;ListView控件用於顯示好友列表。
- ///在程序中不是用Location來定位控件的位置,而是使用Dock屬性來設置控件的停靠,並隨着父控件一起調整大小。
- /// 作者:周公
- /// 日期:2008-5-31
- /// 原創地址:<A href="http://blog.csdn.net/zhoufoxcn/archive/2008/05/31/2499194.aspx">http://blog.csdn.net/zhoufoxcn/archive/2008/05/31/2499194.aspx</A>
- ///
- public partial class MainForm : Form
- {
- public MainForm()
- {
- InitializeComponent();
- }
- //顯示我的好友名單菜單
- private void btnMyFriend_Click(object sender, EventArgs e)
- {
- //設置停靠
- 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);
- }
- private void MainForm_Load(object sender, EventArgs e)
- {
- //設置停靠
- 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);
- }
- //顯示我的陌生人菜單
- private void btnMyStranger_Click(object sender, EventArgs e)
- {
- //設置停靠
- 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);
- }
- //顯示我的同事菜單
- private void btnMyColleague_Click(object sender, EventArgs e)
- {
- //設置停靠
- 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);
- }
- }
- }