diff --git a/ClientsLibrary/BasicSupport/NetClientOnline.cs b/ClientsLibrary/BasicSupport/NetClientOnline.cs
index e0f6608..5943799 100644
--- a/ClientsLibrary/BasicSupport/NetClientOnline.cs
+++ b/ClientsLibrary/BasicSupport/NetClientOnline.cs
@@ -28,8 +28,17 @@ namespace ClientsLibrary.BasicSupport
MyControls[i].Dispose();
MyControls.RemoveAt(i);
}
+
+ Location_Y = 0;
}
+ ///
+ /// 清理掉所有的在线信息
+ ///
+ public void ClearOnlineClients()
+ {
+ ClearControls();
+ }
public void ClientOnline(NetAccount account)
{
diff --git a/ClientsLibrary/UserClient.cs b/ClientsLibrary/UserClient.cs
index 5be5b78..efe7644 100644
--- a/ClientsLibrary/UserClient.cs
+++ b/ClientsLibrary/UserClient.cs
@@ -36,7 +36,7 @@ namespace ClientsLibrary
///
/// 本软件的当前版本,用来验证更新的关键依据
///
- public static SystemVersion CurrentVersion { get; } = new SystemVersion("1.0.0.171011");
+ public static SystemVersion CurrentVersion { get; } = new SystemVersion("1.0.0.171013");
///
diff --git a/CommonLibrary/ProtocolSupport/CommonProtocol.cs b/CommonLibrary/ProtocolSupport/CommonProtocol.cs
index 3b81e82..40c472c 100644
--- a/CommonLibrary/ProtocolSupport/CommonProtocol.cs
+++ b/CommonLibrary/ProtocolSupport/CommonProtocol.cs
@@ -45,7 +45,7 @@ namespace CommonLibrary
*
**************************************************************************/
- SoftBasic.FrameworkVersion = new SystemVersion("1.6.11");
+ SoftBasic.FrameworkVersion = new SystemVersion("1.6.12");
}
diff --git a/Public/HslCommunication.dll b/Public/HslCommunication.dll
index de4da10..60a691d 100644
Binary files a/Public/HslCommunication.dll and b/Public/HslCommunication.dll differ
diff --git a/Public/HslCommunication.xml b/Public/HslCommunication.xml
index 808f879..69a88e7 100644
--- a/Public/HslCommunication.xml
+++ b/Public/HslCommunication.xml
@@ -2568,6 +2568,11 @@
服务器的异常,启动,等等一般消息产生的时候,出发此事件
+
+
+ 在客户端断开后并在重连服务器之前触发,用于清理系统资源
+
+
当接收到文本数据的时候,触发此事件
diff --git a/软件系统客户端Wpf/MainWindow.xaml.cs b/软件系统客户端Wpf/MainWindow.xaml.cs
index 3a5020b..40a5a33 100644
--- a/软件系统客户端Wpf/MainWindow.xaml.cs
+++ b/软件系统客户端Wpf/MainWindow.xaml.cs
@@ -23,7 +23,6 @@ using System.Threading;
using 软件系统客户端Wpf.Views;
using System.Windows.Media.Animation;
using MaterialDesignThemes.Wpf;
-using CommonLibrary;
namespace 软件系统客户端Wpf
{
@@ -55,7 +54,7 @@ namespace 软件系统客户端Wpf
/*****************************************************************************************
*
* 权限说明 在进行特定权限操作的业务逻辑时,应该提炼成一个角色,这样可以动态绑定带有这些功能的账户
- * 示例 if (UserClient.CheckUserAccountRole("审计员")) { dosomething(); }// 获取了审计员的角色,名字此处示例
+ * 示例 if (UserClient.CheckUserAccountRole("[审计员的GUID码]")) { dosomething(); }// 获取了审计员的角色,名字此处示例
*
******************************************************************************************/
@@ -83,23 +82,24 @@ namespace 软件系统客户端Wpf
private void Window_Activated(object sender, EventArgs e)
{
- //窗口激活就触发,不应把初始代码放这里
+ // 窗口激活就触发,不应把初始代码放这里
}
private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
IsWindowShow = false;
- //通知服务器退出网络服务
+ // 通知服务器退出网络服务
net_socket_client.ClientClose();
+
- //保存当前的颜色选择
+ // 保存当前的颜色选择
var p = new PaletteHelper().QueryPalette();
using (StreamWriter sw = new StreamWriter(AppDomain.CurrentDomain.BaseDirectory + @"Palette.txt", false, Encoding.UTF8))
{
sw.Write(JObject.FromObject(p).ToString());
}
- //等待一秒退出
+ // 等待一秒退出
using (FormWaitInfomation fwm = new FormWaitInfomation("正在退出程序...", 1000))
{
fwm.ShowDialog();
@@ -183,6 +183,7 @@ namespace 软件系统客户端Wpf
net_socket_client.LoginSuccess += Net_socket_client_LoginSuccess;
net_socket_client.AcceptByte += Net_socket_client_AcceptByte;
net_socket_client.AcceptString += Net_socket_client_AcceptString;
+ net_socket_client.BeforReConnected += Net_socket_client_BeforReConnected;
TextBlock_Announcement.Text = UserClient.Announcement;
@@ -195,6 +196,8 @@ namespace 软件系统客户端Wpf
new PaletteHelper().SetLightDark(UserClient.JsonSettings.IsThemeDark);
}
+
+
private void AddStringRenderShow(string str)
{
var messageQueue = SoftSnackbar.MessageQueue;
@@ -553,25 +556,36 @@ namespace 软件系统客户端Wpf
private void Net_socket_client_AcceptByte(AsyncStateOne object1, NetHandle customer, byte[] object2)
{
- //接收到服务器发来的字节数据
+ // 接收到服务器发来的字节数据
if (IsWindowShow) Dispatcher.Invoke(new Action(() =>
{
MessageBox.Show(customer.ToString());
}));
}
+
+
private void Net_socket_client_LoginSuccess()
{
- //登录成功,或重新登录成功的事件,有些数据的初始化可以放在此处
+ // 登录成功,或重新登录成功的事件,有些数据的初始化可以放在此处
if (IsWindowShow) Dispatcher.Invoke(new Action(() =>
{
TextBlock_ClientStatus.Text = "客户端启动成功";
}));
}
+ private void Net_socket_client_BeforReConnected()
+ {
+ // 和服务器断开,重新连接之前发生的事件,清理已加载资源使用,比如客户端在线信息
+ if (IsWindowShow) Dispatcher.Invoke(new Action(() =>
+ {
+ ClientsOnline.Children?.Clear();
+ }));
+ }
+
private void Net_socket_client_LoginFailed(int object1)
{
- //登录失败的情况,如果连续三次连接失败,请考虑退出系统
+ // 登录失败的情况,如果连续三次连接失败,请考虑退出系统
if (object1 > 3)
{
if (IsWindowShow) Dispatcher.Invoke(new Action(() =>
@@ -583,7 +597,7 @@ namespace 软件系统客户端Wpf
private void Net_socket_client_MessageAlerts(string object1)
{
- //信息提示
+ // 信息提示
if (IsWindowShow) Dispatcher.Invoke(new Action(() =>
{
TextBlock_ClientStatus.Text = object1;
diff --git a/软件系统客户端模版/FormMainWindow.cs b/软件系统客户端模版/FormMainWindow.cs
index 5f32971..0ac9ba2 100644
--- a/软件系统客户端模版/FormMainWindow.cs
+++ b/软件系统客户端模版/FormMainWindow.cs
@@ -93,6 +93,7 @@ namespace 软件系统客户端模版
net_socket_client.LoginSuccess += Net_socket_client_LoginSuccess;
net_socket_client.AcceptByte += Net_socket_client_AcceptByte;
net_socket_client.AcceptString += Net_socket_client_AcceptString;
+ net_socket_client.BeforReConnected += Net_socket_client_BeforReConnected;
// 显示公告
label_Announcement.Text = UserClient.Announcement;
@@ -102,6 +103,8 @@ namespace 软件系统客户端模版
//初始化窗口
MainRenderInitialization();
}
+
+
private void FormMainWindow_Shown(object sender, EventArgs e)
{
// 窗口显示
@@ -490,6 +493,17 @@ namespace 软件系统客户端模版
}));
}
+
+ private void Net_socket_client_BeforReConnected()
+ {
+ // 和服务器断开后,重新连接之前操作,清理在线信息
+ if (IsHandleCreated && IsWindowShow) Invoke(new Action(() =>
+ {
+ netClientOnline1.ClearOnlineClients();
+ }));
+ }
+
+
private void Net_socket_client_LoginFailed(int object1)
{
// 登录失败的情况,如果连续三次连接失败,请考虑退出系统