winform项目——仿QQ即时通讯程序13:添加好友及发送验证消息

  • 时间:
  • 浏览:9
  • 来源:安徽大学教务系统_安徽大学教务处_安徽大学教务管理系统青大教务
阅读模式

上一篇文章完成了服务端程序的优化,本篇文章将实现主界面初始化以及添加好友发送验证消息操作。

回顾上一次,我们客户端程序做到登录后连接上服务器,我们接着按照程序应该有的步骤将功能依次实现。

首先,登录后,加载主界面。主界面需要初始化一些东西。

初始化用户信息

因为我们做的比较简单,用户信息只有账号、昵称和密码,所以要初始化的用户信息也就只有昵称了。

在Major主窗体加载事件中,将之前我们测试生成会话和好友列表的代码注释掉,然后写一个初始化用户数据函数:

private void Major_Load(object sender, EventArgs e)

{

CheckForIllegalCrossThreadCalls = false;

//for (int i = 0; i

//{

// loadtalk(i,loadTalkMessageList());

// loadFriends(i, loadFriendList());

//}

//窗体加载时初始化

//初始化用户信息

initUserData();

}

接着写出函数体:

private void initUserData()

{

SqlDataReader sdr = SqlHelper.ExecuteReader("select * from Users where Account='" + Common.Account + "'");

//加载昵称

if (sdr.Read())

{

lbl_NickName.Text = sdr[3].ToString();

}

sdr.Close();

}

很简单,利用账号查找昵称,将主界面上的昵称label的text更改就行了。

然后应该是初始化会话列表和好友列表,但是我们还没有好友,所以现在不做这两个功能。我们先来做查找好友和添加好友功能。

查找好友功能实现

我们切换到查找好友界面,只需要实现查找按钮的点击事件即可:

private void button1_Click(object sender, EventArgs e)

{

//for (int i = 0; i

//{

// add_panel(list[i].Account,list[i].NickName);

//}

//先移除flowlayoutpanel上的控件

flowLayoutPanel1.Controls.Clear();

//根据账号查找用户

List

接着是loadUser方法:

private List

因为之前做界面时的add_panel方法已经做好了,调用一次就是一个查找到的结果,因此我们将查找到的结果封装到List中,方便使用。User是一个用户模型类,前面的文章已经提到。采用模糊查询,更方便找到用户。

添加按钮的点击事件

接着我们需要给查找到的用户上面的添加按钮实现点击事件。点击“+好友”按钮就应该弹出添加好友界面,但是我们需要将该用户的账号和昵称传递过去。那么怎么拿到账号呢?其实在我们的add_panel中已经有了用户的账号和昵称,我们只需要用什么东西保存它们即可。既然我们点击的是这个添加按钮,那么这里我们就采用“+好友”这个按钮的Name属性来存储该用户的账号和昵称,点击的时候只需要拿到该按钮的Name属性就拿到了用户的账号的昵称,在add_panel中的代码如下:

Button add_btn = new Button();

add_btn.Location = new System.Drawing.Point(100, 60);

add_btn.Name = account + Common.splitFlag+nickName;

add_btn.Size = new System.Drawing.Size(50, 20);

add_btn.Text = "+好友";

add_btn.UseVisualStyleBackColor = true;

add_btn.MouseClick += Add_btn_MouseClick;

可以看到它的Name属性是由账号和昵称加分隔符组成的。然后是Add_btn_MouseClick方法的实现:

private void Add_btn_MouseClick(object sender, MouseEventArgs e)

{

AddFriend af = new AddFriend();

af.Tag = ((Button)sender).Name;

af.Show();

猜你喜欢