winform没有数据库怎么把数据缓存保存到本地,拿登录账号密码举例,保存本地别人又不能知道?

上一篇文章我们实现了会话列表的存储,本篇文章将实现最后的功能:好友间互发消息及本地消息记录的存储。这是CIM项目系列的最后一篇文章,因为实现这个功能之后整个项目基本上就算完成了。

首先,我们需要在Chat聊天窗体中进行用户初始化。

我们双击会话或者好友列表中的panel的时候,弹出Chat聊天窗体,同时利用控件的tag属性将对方账号传了过去。窗体上方有一个现实用户昵称的label需要初始化。

这是最终的代码,先不用管其余的代码,后面会用到。

其次,我们实现发送按钮的点击事件:

我将要处理的事情分成5个过程,这5点是必须要考虑到的。按照上面的注释理解就可以了。

在这里说一下实现本地存储消息记录的逻辑。网上查了下,人家是用的结构化存储技术,只是这个技术就非常庞大了。因此我们放弃使用复杂的存储方式。我们还是利用文本文件进行存储,消息记录存储在和用户账号相关的一个文件中,每一条记录占用一行,读取的时候也挺方便的。主要就是效率不够高。因此我们将一个用户就生成一个消息记录文件,这样既避免的访问冲突,也提高了一点效率。

接下来我们要继续修改Major主界面中的接收消息部分。下面是核心代码:

这里最下面多了一个判断聊天窗体是否已经打开的逻辑,用到了Common类中定义的字典:existedChatForm,之前定义的List集合,注意要改成字典,键是string类型,值是Chat类型。如果窗体已经打开了,就将消息显示聊天窗体里面。这个字典还有一个用处,在双击会话列表或者好友列表的时候,会直接弹出聊天窗体,我们需要验证一下该窗体是否已经存在了,如果存在就让它显示即可。

我们需要修改动态生成的会话和好友列表中的双击事件:

这里是好友列表panel修改后的双击事件,会话列表的双击事件和这个类似,就不贴出来了。

好了,到这里,项目规划中所有的功能全部实现,至此,winform的CIM仿QQ即时通讯项目正式结束。

剩下的需要优化的部分需要在实际使用过程中逐渐优化。

很多同学学了编程语言,却很难自己做项目。缺乏真正独立的思考或者不知道如何下手。希望本系列文章能够为初学者提供做项目的参考,将编程应用到实际。

本文系小博客网站原创,转载请注明文章链接地址

}

我希望我的程序能够从指定路径C:\plugin找到dll文件,而不是从软件当前目录找.应该怎么办. dll文件太多太大了.

}

我要回帖

更多关于 winform连接数据库实例 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信