上一篇文章我们实现了会话列表的存储,本篇文章将实现最后的功能:好友间互发消息及本地消息记录的存储。这是CIM项目系列的最后一篇文章,因为实现这个功能之后整个项目基本上就算完成了。
首先,我们需要在Chat聊天窗体中进行用户初始化。
我们双击会话或者好友列表中的panel的时候,弹出Chat聊天窗体,同时利用控件的tag属性将对方账号传了过去。窗体上方有一个现实用户昵称的label需要初始化。
private void Chat_Load(object sender, EventArgs e)
{
//上方的昵称标签
lbl_nickName.Text = Common.majorForm.getNickName(this.Tag.ToString());
//消息记录文件的路径 以账号为唯一标识符
msgFilePath = "record_"+this.Tag.ToString()+".db";
//初始化聊天记录
initChatRecord();
//让输入框获取焦点
tb_content.Focus();
}
这是最终的代码,先不用管其余的代码,后面会用到。
其次,我们实现发送按钮的点击事件:
private string msgFilePath;
private void btn_send_Click(object sender, EventArgs e)
{
//1.简单的输入验证
if (tb_content.Text == "")
{
MessageBox.Show("请先输入要发送的内容");
return;
}
if (tb_content.Text.Length > 1000)
{
MessageBox.Show("输入的内容太多啦~");
return;
}
//2.发送消息
string time = DateTime.Now.ToString();
Common.sandMsg(this.Tag.ToString() + Common.splitFlag + tb_content.Text + Common.splitFlag + time);
//3.保存消息记录到文件 路径、昵称、时间、内容
//按行保存
saveChatRecordToFile(msgFilePath, Common.majorForm.lbl_NickName.Text, time, tb_content.Text);