代码:
    /Files/sherlockhua/filetransferbox.rar
    /Files/sherlockhua/TransferBoxEx.rar(改进版)
     实现效果图:
       

       最近在做一个可在局域网中聊天的聊天工具,因为要支持多文件传输功能,所以显示多文件传输状态便成了一个问题。我们都用过qq,当进行多文件传输时,它可以以列表的形式把正在传输的文件信息显示出来。显示的内容有文件图标,文件名,发送或者接受文件,进度条,文件大小还有一些取消,保存之类的按钮。而且当正在传输的文件比较多,客户区显示不了时。就会出现一个滚动条,用来显示所有的发送或接收文件的信息。

好了,大概得轮廓都已经了解了。现在就可以开始着手写控件了。我们知道列表中的每一项都是一个文件信息,我们就可以把每一个文件信息作为一个类,然后在这个类之中绘制各种文件信息。自然而然,我们可以分辨出以下几个类:FileTransferItem类、FileLinkButton类、ProcessBar类。其中FileTransferItem类用来代表一个文件信息项。FileLinkButton提供类似LinkButton类的按钮功能,ProcessBar类提供进度条的功能。然而为了在正确位置进行绘制控件,就必须记下每一对象的位置。因此,我们可以用一个基类FileObject来替提供位置信息,其他的类都继承它。部分代码如下:

  1

为了更好的实现封装性和隐蔽性。在类FileTransferItem增加注册事件的函数。

 1

当文件项移除时,取消注册函数:

1实现类似qq的显示文件传输信息的控件(改进版)public void UnRegisterEvent()
2

文件信息项绘制函数:

  1        }

    这里只是列出关键代码,具体代码参考源代码。
    如何使用:
        this.fileTranferBox1.AddItem(fileName, info.Length, ZH.FileTranferBox.TransferType.SendFile);
    基本功能是实现了,但还有很多不足和改进的地方,有好的方法希望能够和我共享。谢谢!

相关文章:

  • 2022-12-23
  • 2021-09-07
  • 2022-12-23
  • 2022-02-07
  • 2021-07-01
  • 2021-10-18
  • 2021-12-02
  • 2022-12-23
猜你喜欢
  • 2021-05-31
  • 2022-12-23
  • 2021-11-18
  • 2022-12-23
  • 2021-05-20
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案