仿QQ面板的WinForm窗体
说明:前几天在一个朋友那里看到做得很漂亮的一个企业及时通讯软件,利用C#编写,完全没有利用第三方控件就实现了类似于QQ面板的效果,非常漂亮。
回家之后凭着自己的记忆和查阅MSDN尝试实现了一下,初步实现了类似效果,现在奉献给大家。
在程序中用到了三种控件(不包括窗体类):ImageList、Button和ListView。Button控件显示好友分组,点击之后显示相应好友分组的信息;ImageList控件用于存放好友头像;ListView控件用于显示好友列表。在程序中不是用Location来定位控件的位置,而是使用Dock属性来设置控件的停靠,并随着父控件一起调整大小。
说明:前几天在一个朋友那里看到做得很漂亮的一个企业及时通讯软件,利用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;
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. }
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.}
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
,如需转载请自行联系原作者