chat function

This commit is contained in:
2023-03-03 11:27:48 +09:00
parent a754ba2956
commit a8be3eb3a4
6 changed files with 115 additions and 6 deletions

View File

@@ -25,17 +25,18 @@ namespace Client
lbxUser.Items.Add(Singleton.Instance.Nickname);
Singleton.Instance.UserEnterResponsed += UserEnterResponsed;
Singleton.Instance.UserLeaveResponsed += UserLeaveResponsed;
Singleton.Instance.ChatResponsed += ChatResponsed;
}
private void btmSend_Click(object sender, EventArgs e)
private async void btmSend_Click(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(tbxMsg.Text))
return;
lbxMsg.Items.Add(tbxMsg.Text);
tbxMsg.Text = null;
ChatPacket packet = new ChatPacket(Singleton.Instance.Nickname, tbxMsg.Text);
await Singleton.Instance.SendAsync(packet.Serialize(), SocketFlags.None);
ScrollMsgToEnd();
tbxMsg.Text = null;
}
private void ScrollMsgToEnd()
@@ -83,10 +84,24 @@ namespace Client
});
}
private void ChatResponsed(object? sender, EventArgs e)
{
if (sender == null)
return;
ChatPacket packet = (ChatPacket)sender;
InvokeMethod(() =>
{
lbxMsg.Items.Add($"{packet.NickName}: {packet.Message}");
ScrollMsgToEnd();
});
}
private async void ChatRoomForm_FormClosing(object sender, FormClosingEventArgs e)
{
Singleton.Instance.UserEnterResponsed -= UserEnterResponsed;
Singleton.Instance.UserLeaveResponsed -= UserLeaveResponsed;
Singleton.Instance.ChatResponsed -= ChatResponsed;
UserLeavePacket packet = new UserLeavePacket(Singleton.Instance.Nickname);
await Singleton.Instance.SendAsync(packet.Serialize(), SocketFlags.None);