作业题目:
我们都用过QQ或微信等即时通讯工具与好友聊天。现在要求你写一个“仿真”程序,模拟实现QQ或微信的“一对一”聊天功能。真正的仿真程序,需要使用多线程及网络编程技术,过于复杂,为此,特对需求进行简化,仅要求实现一个“单进程版”的示例程序就行了:
-
程序运行时,可以显示多个窗体,每个窗体代表一个用户。
-
窗体上有一个在线用户列表,可以从中选择一个作为信息的接收方,接着,用户在文本框中输入内容,发送之后,对方收到消息。
一个参考示例如下:
上图所示为主控程序,可以随时创建一个新用户,新用户姓名将显示在“在线用户”列表中,同时,代表用户的聊天窗口显示在屏幕上。
注意:不能创建同名的用户。
用户聊天窗体如下所示:
在上图中,下拉框中看到所有在线用户的列表(应该排除掉自己),从中选择一个之后(比如选择“张三”),在下面的文本框中输入消息,点击“发送”,则此条消息将出现在“张三”窗体的“历史聊天记录”列表中。
类似地,张三发给李四的信息,将显示在李四窗体下部的历史聊天记录中。
注意:不能给自己发消息,也不能发空消息。
以上仅为参考设计,并不需要一定照着这个样子来,你可以设计更为完善的界面。
-
程序退出时能保存在线用户列表,当重新启动程序时,主控程序自动装入上次用户列表并在屏幕上显示相应的用户窗体。
-
程序能保存特定用户的聊天记录,当重新显示这个用户的聊天窗体时,能自动装入用户的聊天记录。
请提交可以在Visual Studio 2013中编译通过的项目源码,配上一个文档,简要说明你的程序中的设计方案和技术要点,特别地,要突出你做到“最棒”和“最酷”的地方,吸引判分的同学给你高分。
现遇到问题:
在这个作业中我现在遇到一个问题从早上到现在还没解决!我是想达到这样的效果:当主窗体点创建用户后,用户窗体的选择聊天用户的combobox实时更新并且在下拉框中不能有当前用户的名的。但我现在每个用户的下拉框都一样,我在里面加了判断,但不知道哪出错了,调试了半天不知道怎么解决。
其他问题:当每点击按钮的时候会对绑定过的窗体再一次对事件进行绑定,这样用户窗体绑定的那个方法就会在第N次点击后执行N-1次,但怎么解决我没找到方案,求帮助
源码在附件