diff --git a/ClientsLibrary/BasicSupport/NetClientOnline.cs b/ClientsLibrary/BasicSupport/NetClientOnline.cs
index 971282a..e0f6608 100644
--- a/ClientsLibrary/BasicSupport/NetClientOnline.cs
+++ b/ClientsLibrary/BasicSupport/NetClientOnline.cs
@@ -63,17 +63,18 @@ namespace ClientsLibrary.BasicSupport
if (index >= 0)
{
+ int offect = MyControls[index].Height + 4;
+ Location_Y -= offect;
MyControls[index].Dispose();
MyControls.RemoveAt(index);
// 重新计算偏移
-
- Location_Y = 0 - VerticalScroll.Value;
- for (int i = 0; i < MyControls.Count; i++)
+
+ for (int i = index; i < MyControls.Count; i++)
{
- MyControls[i].Location = new Point(2, Location_Y);
- Location_Y += MyControls[i].Height + 4;
+ MyControls[i].Location = new Point(2, MyControls[i].Location.Y - offect);
}
+
}
label2.Text = MyControls.Count.ToString();
@@ -85,8 +86,8 @@ namespace ClientsLibrary.BasicSupport
panel1.Controls.Add(item);
// 添加显示
item.SetNetAccount(account);
- item.Location = new Point(2, Location_Y); // 控件的位置
- int width = VerticalScroll.Visible ? Width - 4 - SystemInformation.VerticalScrollBarWidth : Width - 4; // 控件的宽度
+ item.Location = new Point(2, Location_Y - panel1.VerticalScroll.Value); // 控件的位置
+ int width = panel1.VerticalScroll.Visible ? Width - 4 - SystemInformation.VerticalScrollBarWidth : Width - 4; // 控件的宽度
item.Size = new Size(width, item.Size.Height); // 控件的大小
item.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right; // 控件随窗口变化的样式
@@ -97,8 +98,6 @@ namespace ClientsLibrary.BasicSupport
public void SetOnlineRender(NetAccount[] accounts)
{
SuspendLayout();
- //清楚缓存
- ClearControls();
if (accounts != null)
{
@@ -106,7 +105,6 @@ namespace ClientsLibrary.BasicSupport
if (accounts.Length > 0 && Width > 20)
{
- int Location_Y = 0 - VerticalScroll.Value;
//添加子控件
foreach (var m in accounts)
{
diff --git a/ClientsLibrary/UserClient.cs b/ClientsLibrary/UserClient.cs
index 41c140b..5be5b78 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.171010");
+ public static SystemVersion CurrentVersion { get; } = new SystemVersion("1.0.0.171011");
///
diff --git a/CommonLibrary/ProtocolSupport/CommonProtocol.cs b/CommonLibrary/ProtocolSupport/CommonProtocol.cs
index c0b0a57..b26a321 100644
--- a/CommonLibrary/ProtocolSupport/CommonProtocol.cs
+++ b/CommonLibrary/ProtocolSupport/CommonProtocol.cs
@@ -45,7 +45,7 @@ namespace CommonLibrary
*
**************************************************************************/
- SoftBasic.FrameworkVersion = new SystemVersion("1.6.9");
+ SoftBasic.FrameworkVersion = new SystemVersion("1.6.10");
}
diff --git a/软件系统客户端Wpf/MainWindow.xaml.cs b/软件系统客户端Wpf/MainWindow.xaml.cs
index 61dce35..3a5020b 100644
--- a/软件系统客户端Wpf/MainWindow.xaml.cs
+++ b/软件系统客户端Wpf/MainWindow.xaml.cs
@@ -406,6 +406,7 @@ namespace 软件系统客户端Wpf
private NetComplexClient net_socket_client = new NetComplexClient();
+
private void Net_Socket_Client_Initialization()
{
try
@@ -489,9 +490,7 @@ namespace 软件系统客户端Wpf
TextBlock_ServerTime.Text = UserClient.DateTimeServer.ToString("yyyy-MM-dd HH:mm:ss");
TextBlock_FileCount.Text = json["FileCount"].ToObject().ToString();
UIControls_Chat.AddChatsHistory(sb.ToString());
-
-
- ClientsOnline.Children.Clear();
+
NetAccount[] accounts = JArray.Parse(json["ClientsOnline"].ToString()).ToObject();
foreach (var m in accounts)
diff --git a/软件系统服务端模版/FormServerWindow.cs b/软件系统服务端模版/FormServerWindow.cs
index c3d56d7..1afa75b 100644
--- a/软件系统服务端模版/FormServerWindow.cs
+++ b/软件系统服务端模版/FormServerWindow.cs
@@ -906,17 +906,17 @@ namespace 软件系统服务端模版
{
try
{
- net_socket_server.KeyToken = CommonProtocol.KeyToken;//设置身份令牌
- net_socket_server.LogNet =new LogNetSingle(LogSavePath + @"\net_log.txt");
- net_socket_server.LogNet.SetMessageDegree(HslMessageDegree.DEBUG);//默认debug及以上级别日志均进行存储,根据需要自行选择
- net_socket_server.FormatClientOnline = "#IP:{0} Name:{1}";//必须为#开头,具体格式可由自身需求确定
- net_socket_server.IsSaveLogClientLineChange = true;//设置客户端上下线是否记录到日志
- net_socket_server.ClientOnline += new NetBase.IEDelegate(Net_socket_server_ClientOnline);//客户端上线触发
- net_socket_server.ClientOffline += new NetBase.IEDelegate(Net_socket_server_ClientOffline);//客户端下线触发,包括异常掉线
- net_socket_server.AllClientsStatusChange += new NetBase.IEDelegate(Net_socket_server_AllClientsStatusChange);//客户端上下线变化时触发
- net_socket_server.MessageAlerts += new NetBase.IEDelegate(Net_socket_server_MessageAlerts);//服务器产生提示消息触发
- net_socket_server.AcceptByte += new NetBase.IEDelegate(Net_socket_server_AcceptByte);//服务器接收到字节数据触发
- net_socket_server.AcceptString += new NetBase.IEDelegate(Net_socket_server_AcceptString);//服务器接收到字符串数据触发
+ net_socket_server.KeyToken = CommonProtocol.KeyToken; // 设置身份令牌
+ net_socket_server.LogNet =new LogNetSingle(LogSavePath + @"\net_log.txt"); // 设置日志存储路径
+ net_socket_server.LogNet.SetMessageDegree(HslMessageDegree.DEBUG); // 默认debug及以上级别日志均进行存储,根据需要自行选择
+ net_socket_server.FormatClientOnline = "#IP:{0} Name:{1}"; // 必须为#开头,具体格式可由自身需求确定
+ net_socket_server.IsSaveLogClientLineChange = true; // 设置客户端上下线是否记录到日志
+ net_socket_server.ClientOnline += new NetBase.IEDelegate(Net_socket_server_ClientOnline);// 客户端上线触发
+ net_socket_server.ClientOffline += new NetBase.IEDelegate(Net_socket_server_ClientOffline);// 客户端下线触发,包括异常掉线
+ net_socket_server.AllClientsStatusChange += new NetBase.IEDelegate(Net_socket_server_AllClientsStatusChange);// 客户端上下线变化时触发
+ net_socket_server.MessageAlerts += new NetBase.IEDelegate(Net_socket_server_MessageAlerts);// 服务器产生提示消息触发
+ net_socket_server.AcceptByte += new NetBase.IEDelegate(Net_socket_server_AcceptByte);// 服务器接收到字节数据触发
+ net_socket_server.AcceptString += new NetBase.IEDelegate(Net_socket_server_AcceptString);// 服务器接收到字符串数据触发
net_socket_server.ServerStart(CommonProtocol.Port_Main_Net);
}
catch (Exception ex)
@@ -985,6 +985,21 @@ namespace 软件系统服务端模版
private void Net_socket_server_ClientOnline(AsyncStateOne object1)
{
+ NetAccount account = new NetAccount
+ {
+ UserName = object1.LoginAlias,
+ Roles = UserServer.ServerRoles.GetRolesByUserName(object1.LoginAlias),
+ IpAddress = object1.IpAddress,
+ Alias = UserServer.ServerAccounts.GetAccountAlias(object1.LoginAlias),
+ Factory = UserServer.ServerAccounts.GetAccountFactory(object1.LoginAlias),
+ LoginTime = DateTime.Now,
+ UniqueId = object1.ClientUniqueID
+ };
+
+ net_socket_server.SendAllClients(CommonHeadCode.MultiNetHeadCode.新用户上线, JObject.FromObject(account).ToString());
+
+
+ AddOnlineClient(account);
// 上线后回发一条数据初始化信息
JObject json = new JObject
{
@@ -997,21 +1012,6 @@ namespace 软件系统服务端模版
net_socket_server.Send(object1, CommonHeadCode.MultiNetHeadCode.初始化数据, json.ToString());
// 触发上下线功能
UserInterfaceMessageRender(DateTime.Now.ToString("MM-dd HH:mm:ss ") + object1.IpAddress + ":" + object1.LoginAlias + " 上线");
-
- NetAccount account = new NetAccount();
- account.UserName = object1.LoginAlias;
- account.Roles = UserServer.ServerRoles.GetRolesByUserName(object1.LoginAlias);
- account.IpAddress = object1.IpAddress;
- account.Alias = UserServer.ServerAccounts.GetAccountAlias(object1.LoginAlias);
- account.Factory = UserServer.ServerAccounts.GetAccountFactory(object1.LoginAlias);
- account.LoginTime = DateTime.Now;
- account.UniqueId = object1.ClientUniqueID;
-
- AddOnlineClient(account);
-
- Thread.Sleep(100);
- net_socket_server.SendAllClients(CommonHeadCode.MultiNetHeadCode.新用户上线, JObject.FromObject(account).ToString());
-
}
private List OnlineClients = new List();