仿QQ面板的WinForm窗体

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

程序核心代码:

  1. usingSystem;
  2. usingSystem.Collections.Generic;
  3. usingSystem.ComponentModel;
  4. usingSystem.Data;
  5. usingSystem.Drawing;
  6. usingSystem.Text;
  7. usingSystem.Windows.Forms;
  8. namespaceQQPanelDemo
  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. publicpartialclassMainForm:Form
  21. {
  22. publicMainForm()
  23. {
  24. InitializeComponent();
  25. }
  26. //显示我的好友名单菜单
  27. privatevoidbtnMyFriend_Click(objectsender,EventArgse)
  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. privatevoidMainForm_Load(objectsender,EventArgse)
  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. privatevoidbtnMyStranger_Click(objectsender,EventArgse)
  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. privatevoidbtnMyColleague_Click(objectsender,EventArgse)
  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. }

程序运行效果:

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; namespace MyQQ2010 { public partial class MusicForm : Form { public MusicForm() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { //打开文件夹选项 OpenFileDialog f = new OpenFileDialog(); //设置能够选中的多个选项 f.Multiselect = true; //弹出文件对话框 DialogResult result = f.ShowDialog(); if ( DialogResult.OK==result) { //获取选中的歌曲的路径 string[] music = f.FileNames; //将歌曲添加到ListBox中 foreach (string item in music) { this.lstMusic.Items.Add(item); } } } //双击播放歌曲 private void lstmusic2_DoubleClick(object sender, EventArgs e) { //获取选中的歌曲 string music = this.lstmusic2.SelectedItem.ToString(); //播放歌曲 Player.URL = music; } private void 添加到播放列表ToolStripMenuItem_Click_1(object sender, EventArgs e) { if (this.lstMusic.SelectedItems.Count == 0) { MessageBox.Show("请选中你要选中的歌曲"); return; } else { //获取选中的歌曲 string music = this.lstMusic.SelectedItem.ToString(); //把选中的歌曲移动到播放列表中 this.lstmusic2.Items.Add(music); //从lstmusic中移除 this.lstMusic.Items.Remove(music); } } private void 删除音乐ToolStripMenuItem_Click_1(object sender, EventArgs e) { if (this.lstMusic.SelectedItems.Count == 0) { MessageBox.Show("请选中你要删除的歌曲"); } else { //获取选中的歌曲 string music = this.lstMusic.SelectedItem.ToString(); //把选中的歌曲删除掉 this.lstMusic.Items.Remove(music); } } private void 从列表中移除ToolStripMenuItem_Click_1(object sender, EventArgs e) { if (this.lstmusic2.SelectedItems.Count == 0) { MessageBox.Show("请选中你要删除的歌曲"); } else { //获取选中的歌曲 string music = this.lstmusic2.SelectedItem.ToString(); //把选中的歌曲删除 this.lstmusic2.Items.Remove(music); } } private void MusicForm_Load_1(object sender, EventArgs e) { //播放顺序默认为列表播放 this.cboPlayOrder.SelectedIndex = 0; this.trm1.Start(); } private void trm1_Tick(object sender, EventArgs e) { //判断歌曲播放的顺序 if (Player.playState == WMPLib.WMPPlayState.wmppsStopped) { if (this.cboPlayOrder.Text == "列表播放") { if (this.lstmusic2.SelectedIndex < this.lstmusic2.Items.Count - 1) { this.lstmusic2.SelectedIndex++; this.lstMusic.Items.Add(this.lstmusic2.SelectedItem.ToString()); Player.URL = this.lstmusic2.SelectedItem.ToString(); } else { this.lstmusic2.SelectedIndex = 0; Player.URL = this.lstmusic2.SelectedItem.ToString(); } } else if (this.cboPlayOrder.Text == "随机播放") { Random r = new Random(); int index = r.Next(0, this.lstmusic2.Items.Count - 1); this.lstmusic2.SelectedIndex = index; string item = this.lstmusic2.SelectedItem.ToString(); this.lstMusic.Items.Add(item);//随机播放的歌曲也要在lbmusic2中显示 Player.URL = item; } else { int index = this.lstmusic2.SelectedIndex; Player.URL = this.lstmusic2.SelectedItem.ToString(); } } } } }

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值