From 9b5a866d16ca2b7a68d3af5bac8ea29c4626902f Mon Sep 17 00:00:00 2001
From: xcd <834800634@qq.com>
Date: 星期三, 08 七月 2020 18:06:32 +0800
Subject: [PATCH] 添加快捷操作界面
---
src/Bro.M071.Process/UI/M071_MainForm.cs | 12 +
src/Bro.UI.Config/AdvancedPwdFrm.cs | 6 +
src/Bro.M071.Process/UI/M071_ShortcutFrm.Designer.cs | 93 +++++++++++++++
src/Bro.M071.Process/UI/M071_ShortcutFrm.cs | 76 ++++++++++++
src/Bro.M071.Process/UI/M071_ShortcutFrm.resx | 120 ++++++++++++++++++++
src/Bro.UI.Config/AdvancedPwdFrm.designer.cs | 23 +++
src/Bro.M071.Process/Bro.M071.Process.csproj | 3
src/Bro.UI.Config/MainFrm.cs | 2
src/Bro.UI.Model.Winform/UI/DockContent/MenuFrmBase.cs | 2
9 files changed, 325 insertions(+), 12 deletions(-)
diff --git a/src/Bro.M071.Process/Bro.M071.Process.csproj b/src/Bro.M071.Process/Bro.M071.Process.csproj
index c81ab99..eb681d3 100644
--- a/src/Bro.M071.Process/Bro.M071.Process.csproj
+++ b/src/Bro.M071.Process/Bro.M071.Process.csproj
@@ -152,6 +152,9 @@
<EmbeddedResource Include="UI\M071_MainForm.resx">
<DependentUpon>M071_MainForm.cs</DependentUpon>
</EmbeddedResource>
+ <EmbeddedResource Include="UI\M071_ShortcutFrm.resx">
+ <DependentUpon>M071_ShortcutFrm.cs</DependentUpon>
+ </EmbeddedResource>
<None Include="App.config">
<SubType>Designer</SubType>
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
diff --git a/src/Bro.M071.Process/UI/M071_MainForm.cs b/src/Bro.M071.Process/UI/M071_MainForm.cs
index 37bcccb..df918c4 100644
--- a/src/Bro.M071.Process/UI/M071_MainForm.cs
+++ b/src/Bro.M071.Process/UI/M071_MainForm.cs
@@ -33,10 +33,12 @@
tscEditLocation.Visible = tsmiShowEditor.Checked = false;
- this.Load += (s, e) =>
- {
- cvImage.SetScreenSize();
- };
+ this.Load += async (s, e) =>
+ {
+ await Task.Delay(300);
+
+ cvImage.SetScreenSize();
+ };
}
public override void OnProcessUpdated()
@@ -52,7 +54,7 @@
try
{
Bitmap image = (Bitmap)Image.FromFile(Config.BackgroundImagePath);
- cvImage.LoadImage(image);
+ cvImage.LoadImage(image);
cvImage.SetScreenSize();
}
catch (Exception ex)
diff --git a/src/Bro.M071.Process/UI/M071_ShortcutFrm.Designer.cs b/src/Bro.M071.Process/UI/M071_ShortcutFrm.Designer.cs
index 6ed449b..eca6a77 100644
--- a/src/Bro.M071.Process/UI/M071_ShortcutFrm.Designer.cs
+++ b/src/Bro.M071.Process/UI/M071_ShortcutFrm.Designer.cs
@@ -28,12 +28,103 @@
/// </summary>
private void InitializeComponent()
{
- this.components = new System.ComponentModel.Container();
+ this.flowLayoutPanel1 = new System.Windows.Forms.FlowLayoutPanel();
+ this.chkBlockSaftyDoor = new System.Windows.Forms.CheckBox();
+ this.chkBlockSafetyBeam = new System.Windows.Forms.CheckBox();
+ this.chkBlockBeep = new System.Windows.Forms.CheckBox();
+ this.chkManualInputForbidden = new System.Windows.Forms.CheckBox();
+ this.btnLightSwitch = new System.Windows.Forms.Button();
+ this.flowLayoutPanel1.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // flowLayoutPanel1
+ //
+ this.flowLayoutPanel1.Controls.Add(this.chkBlockSaftyDoor);
+ this.flowLayoutPanel1.Controls.Add(this.chkBlockSafetyBeam);
+ this.flowLayoutPanel1.Controls.Add(this.chkBlockBeep);
+ this.flowLayoutPanel1.Controls.Add(this.chkManualInputForbidden);
+ this.flowLayoutPanel1.Controls.Add(this.btnLightSwitch);
+ this.flowLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.flowLayoutPanel1.Location = new System.Drawing.Point(0, 0);
+ this.flowLayoutPanel1.Name = "flowLayoutPanel1";
+ this.flowLayoutPanel1.Size = new System.Drawing.Size(800, 450);
+ this.flowLayoutPanel1.TabIndex = 0;
+ //
+ // chkBlockSaftyDoor
+ //
+ this.chkBlockSaftyDoor.AutoSize = true;
+ this.chkBlockSaftyDoor.Location = new System.Drawing.Point(3, 3);
+ this.chkBlockSaftyDoor.Name = "chkBlockSaftyDoor";
+ this.chkBlockSaftyDoor.Size = new System.Drawing.Size(86, 17);
+ this.chkBlockSaftyDoor.TabIndex = 0;
+ this.chkBlockSaftyDoor.Text = "灞忚斀瀹夊叏闂�";
+ this.chkBlockSaftyDoor.UseVisualStyleBackColor = true;
+ this.chkBlockSaftyDoor.CheckedChanged += new System.EventHandler(this.chkBlockSaftyDoor_CheckedChanged);
+ //
+ // chkBlockSafetyBeam
+ //
+ this.chkBlockSafetyBeam.AutoSize = true;
+ this.chkBlockSafetyBeam.Location = new System.Drawing.Point(95, 3);
+ this.chkBlockSafetyBeam.Name = "chkBlockSafetyBeam";
+ this.chkBlockSafetyBeam.Size = new System.Drawing.Size(98, 17);
+ this.chkBlockSafetyBeam.TabIndex = 1;
+ this.chkBlockSafetyBeam.Text = "灞忚斀瀹夊叏鍏夌嚎";
+ this.chkBlockSafetyBeam.UseVisualStyleBackColor = true;
+ this.chkBlockSafetyBeam.CheckedChanged += new System.EventHandler(this.chkBlockSafetyBeam_CheckedChanged);
+ //
+ // chkBlockBeep
+ //
+ this.chkBlockBeep.AutoSize = true;
+ this.chkBlockBeep.Location = new System.Drawing.Point(199, 3);
+ this.chkBlockBeep.Name = "chkBlockBeep";
+ this.chkBlockBeep.Size = new System.Drawing.Size(86, 17);
+ this.chkBlockBeep.TabIndex = 2;
+ this.chkBlockBeep.Text = "灞忚斀铚傞福鍣�";
+ this.chkBlockBeep.UseVisualStyleBackColor = true;
+ this.chkBlockBeep.CheckedChanged += new System.EventHandler(this.chkBlockBeep_CheckedChanged);
+ //
+ // chkManualInputForbidden
+ //
+ this.chkManualInputForbidden.AutoSize = true;
+ this.chkManualInputForbidden.Location = new System.Drawing.Point(291, 3);
+ this.chkManualInputForbidden.Name = "chkManualInputForbidden";
+ this.chkManualInputForbidden.Size = new System.Drawing.Size(122, 17);
+ this.chkManualInputForbidden.TabIndex = 4;
+ this.chkManualInputForbidden.Text = "绂佹鎵嬪姩杈撳叆鏉$爜";
+ this.chkManualInputForbidden.UseVisualStyleBackColor = true;
+ this.chkManualInputForbidden.CheckedChanged += new System.EventHandler(this.chkManualInputForbidden_CheckedChanged);
+ //
+ // btnLightSwitch
+ //
+ this.btnLightSwitch.Location = new System.Drawing.Point(419, 3);
+ this.btnLightSwitch.Name = "btnLightSwitch";
+ this.btnLightSwitch.Size = new System.Drawing.Size(75, 36);
+ this.btnLightSwitch.TabIndex = 5;
+ this.btnLightSwitch.Text = "鏃ュ厜鐏紑鍏�";
+ this.btnLightSwitch.UseVisualStyleBackColor = true;
+ this.btnLightSwitch.Click += new System.EventHandler(this.btnLightSwitch_Click);
+ //
+ // M071_ShortcutFrm
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(800, 450);
+ this.Controls.Add(this.flowLayoutPanel1);
+ this.Name = "M071_ShortcutFrm";
this.Text = "M071_ShortcutFrm";
+ this.flowLayoutPanel1.ResumeLayout(false);
+ this.flowLayoutPanel1.PerformLayout();
+ this.ResumeLayout(false);
+
}
#endregion
+
+ private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel1;
+ private System.Windows.Forms.CheckBox chkBlockSaftyDoor;
+ private System.Windows.Forms.CheckBox chkBlockSafetyBeam;
+ private System.Windows.Forms.CheckBox chkBlockBeep;
+ private System.Windows.Forms.CheckBox chkManualInputForbidden;
+ private System.Windows.Forms.Button btnLightSwitch;
}
}
\ No newline at end of file
diff --git a/src/Bro.M071.Process/UI/M071_ShortcutFrm.cs b/src/Bro.M071.Process/UI/M071_ShortcutFrm.cs
index 245d16d..d5961a9 100644
--- a/src/Bro.M071.Process/UI/M071_ShortcutFrm.cs
+++ b/src/Bro.M071.Process/UI/M071_ShortcutFrm.cs
@@ -6,6 +6,7 @@
using System.Drawing;
using System.Linq;
using System.Text;
+using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
@@ -17,6 +18,81 @@
public M071_ShortcutFrm()
{
InitializeComponent();
+
+ this.Load += (s, e) =>
+ {
+ loadHandle.Set();
+ };
+ }
+
+ ManualResetEventSlim loadHandle = new ManualResetEventSlim(false);
+ M071Config Config => Process?.IConfig as M071Config;
+ M071Process Process_M071 => Process as M071Process;
+
+ protected override bool IsLogin
+ {
+ get => base.IsLogin;
+ set
+ {
+ base.IsLogin = value;
+
+ Task.Run(() =>
+ {
+ if (loadHandle.Wait(1000))
+ {
+ this.Invoke(new Action(() =>
+ {
+ chkBlockSafetyBeam.Enabled = chkBlockSaftyDoor.Enabled = IsLogin;
+ }));
+ }
+ });
+ }
+ }
+
+ public override void OnProcessUpdated()
+ {
+ base.OnProcessUpdated();
+
+ Task.Run(() =>
+ {
+ if (loadHandle.Wait(1000))
+ {
+ this.Invoke(new Action(() =>
+ {
+ chkBlockBeep.Checked = Config.IsBeepBlocked;
+ chkBlockSafetyBeam.Checked = Config.IsSafetyBeamBlocked;
+ chkBlockSaftyDoor.Checked = Config.IsSafetyDoorBlocked;
+ chkManualInputForbidden.Checked = Config.IsBarcodeManulInputBlocked;
+ }));
+ }
+ });
+ }
+
+ private void chkBlockSaftyDoor_CheckedChanged(object sender, EventArgs e)
+ {
+ Config.IsSafetyDoorBlocked = chkBlockSaftyDoor.Checked;
+ }
+
+ private void chkBlockSafetyBeam_CheckedChanged(object sender, EventArgs e)
+ {
+ Config.IsSafetyBeamBlocked = chkBlockSafetyBeam.Checked;
+ }
+
+ private void chkBlockBeep_CheckedChanged(object sender, EventArgs e)
+ {
+ Config.IsBeepBlocked = chkBlockBeep.Checked;
+ }
+
+ private void chkManualInputForbidden_CheckedChanged(object sender, EventArgs e)
+ {
+ Config.IsBarcodeManulInputBlocked = chkManualInputForbidden.Checked;
+ }
+
+ bool isLightOn = false;
+ private void btnLightSwitch_Click(object sender, EventArgs e)
+ {
+ isLightOn = !isLightOn;
+ Process_M071.SwitchLight(isLightOn);
}
}
}
diff --git a/src/Bro.M071.Process/UI/M071_ShortcutFrm.resx b/src/Bro.M071.Process/UI/M071_ShortcutFrm.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/src/Bro.M071.Process/UI/M071_ShortcutFrm.resx
@@ -0,0 +1,120 @@
+锘�<?xml version="1.0" encoding="utf-8"?>
+<root>
+ <!--
+ Microsoft ResX Schema
+
+ Version 2.0
+
+ The primary goals of this format is to allow a simple XML format
+ that is mostly human readable. The generation and parsing of the
+ various data types are done through the TypeConverter classes
+ associated with the data types.
+
+ Example:
+
+ ... ado.net/XML headers & schema ...
+ <resheader name="resmimetype">text/microsoft-resx</resheader>
+ <resheader name="version">2.0</resheader>
+ <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+ <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+ <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+ <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+ <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+ <value>[base64 mime encoded serialized .NET Framework object]</value>
+ </data>
+ <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+ <comment>This is a comment</comment>
+ </data>
+
+ There are any number of "resheader" rows that contain simple
+ name/value pairs.
+
+ Each data row contains a name, and value. The row also contains a
+ type or mimetype. Type corresponds to a .NET class that support
+ text/value conversion through the TypeConverter architecture.
+ Classes that don't support this are serialized and stored with the
+ mimetype set.
+
+ The mimetype is used for serialized objects, and tells the
+ ResXResourceReader how to depersist the object. This is currently not
+ extensible. For a given mimetype the value must be set accordingly:
+
+ Note - application/x-microsoft.net.object.binary.base64 is the format
+ that the ResXResourceWriter will generate, however the reader can
+ read any of the formats listed below.
+
+ mimetype: application/x-microsoft.net.object.binary.base64
+ value : The object must be serialized with
+ : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.soap.base64
+ value : The object must be serialized with
+ : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.bytearray.base64
+ value : The object must be serialized into a byte array
+ : using a System.ComponentModel.TypeConverter
+ : and then encoded with base64 encoding.
+ -->
+ <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+ <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+ <xsd:element name="root" msdata:IsDataSet="true">
+ <xsd:complexType>
+ <xsd:choice maxOccurs="unbounded">
+ <xsd:element name="metadata">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" />
+ </xsd:sequence>
+ <xsd:attribute name="name" use="required" type="xsd:string" />
+ <xsd:attribute name="type" type="xsd:string" />
+ <xsd:attribute name="mimetype" type="xsd:string" />
+ <xsd:attribute ref="xml:space" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="assembly">
+ <xsd:complexType>
+ <xsd:attribute name="alias" type="xsd:string" />
+ <xsd:attribute name="name" type="xsd:string" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="data">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+ <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+ <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+ <xsd:attribute ref="xml:space" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="resheader">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required" />
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:choice>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ <resheader name="resmimetype">
+ <value>text/microsoft-resx</value>
+ </resheader>
+ <resheader name="version">
+ <value>2.0</value>
+ </resheader>
+ <resheader name="reader">
+ <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+ <resheader name="writer">
+ <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+</root>
\ No newline at end of file
diff --git a/src/Bro.UI.Config/AdvancedPwdFrm.cs b/src/Bro.UI.Config/AdvancedPwdFrm.cs
index f710f0b..275c534 100644
--- a/src/Bro.UI.Config/AdvancedPwdFrm.cs
+++ b/src/Bro.UI.Config/AdvancedPwdFrm.cs
@@ -76,5 +76,11 @@
CheckInputPassword();
}
}
+
+ private void btnExitLogin_Click(object sender, EventArgs e)
+ {
+ OnLoginOK?.Invoke(false);
+ this.DialogResult = DialogResult.Abort;
+ }
}
}
diff --git a/src/Bro.UI.Config/AdvancedPwdFrm.designer.cs b/src/Bro.UI.Config/AdvancedPwdFrm.designer.cs
index 8c385ef..bf7e6b6 100644
--- a/src/Bro.UI.Config/AdvancedPwdFrm.designer.cs
+++ b/src/Bro.UI.Config/AdvancedPwdFrm.designer.cs
@@ -32,11 +32,12 @@
this.label1 = new System.Windows.Forms.Label();
this.btnCancel = new System.Windows.Forms.Button();
this.btnOK = new System.Windows.Forms.Button();
+ this.btnExitLogin = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// txtPwd
//
- this.txtPwd.Font = new System.Drawing.Font("SimSun", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+ this.txtPwd.Font = new System.Drawing.Font("瀹嬩綋", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.txtPwd.Location = new System.Drawing.Point(126, 28);
this.txtPwd.Name = "txtPwd";
this.txtPwd.PasswordChar = '*';
@@ -47,7 +48,7 @@
// label1
//
this.label1.AutoSize = true;
- this.label1.Font = new System.Drawing.Font("SimSun", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+ this.label1.Font = new System.Drawing.Font("瀹嬩綋", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.label1.Location = new System.Drawing.Point(32, 32);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(52, 14);
@@ -57,7 +58,7 @@
// btnCancel
//
this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
- this.btnCancel.Font = new System.Drawing.Font("SimSun", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+ this.btnCancel.Font = new System.Drawing.Font("瀹嬩綋", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnCancel.Location = new System.Drawing.Point(208, 63);
this.btnCancel.Name = "btnCancel";
this.btnCancel.Size = new System.Drawing.Size(75, 23);
@@ -68,7 +69,7 @@
//
// btnOK
//
- this.btnOK.Font = new System.Drawing.Font("SimSun", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+ this.btnOK.Font = new System.Drawing.Font("瀹嬩綋", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnOK.Location = new System.Drawing.Point(289, 63);
this.btnOK.Name = "btnOK";
this.btnOK.Size = new System.Drawing.Size(75, 23);
@@ -76,6 +77,18 @@
this.btnOK.Text = "OK";
this.btnOK.UseVisualStyleBackColor = true;
this.btnOK.Click += new System.EventHandler(this.button2_Click);
+ //
+ // btnExitLogin
+ //
+ this.btnExitLogin.DialogResult = System.Windows.Forms.DialogResult.Cancel;
+ this.btnExitLogin.Font = new System.Drawing.Font("瀹嬩綋", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+ this.btnExitLogin.Location = new System.Drawing.Point(12, 63);
+ this.btnExitLogin.Name = "btnExitLogin";
+ this.btnExitLogin.Size = new System.Drawing.Size(75, 23);
+ this.btnExitLogin.TabIndex = 2;
+ this.btnExitLogin.Text = "閫�鍑虹櫥褰�";
+ this.btnExitLogin.UseVisualStyleBackColor = true;
+ this.btnExitLogin.Click += new System.EventHandler(this.btnExitLogin_Click);
//
// AdvancedPwdFrm
//
@@ -85,6 +98,7 @@
this.ClientSize = new System.Drawing.Size(388, 98);
this.ControlBox = false;
this.Controls.Add(this.btnOK);
+ this.Controls.Add(this.btnExitLogin);
this.Controls.Add(this.btnCancel);
this.Controls.Add(this.label1);
this.Controls.Add(this.txtPwd);
@@ -103,5 +117,6 @@
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Button btnCancel;
private System.Windows.Forms.Button btnOK;
+ private System.Windows.Forms.Button btnExitLogin;
}
}
\ No newline at end of file
diff --git a/src/Bro.UI.Config/MainFrm.cs b/src/Bro.UI.Config/MainFrm.cs
index f35297d..39c483d 100644
--- a/src/Bro.UI.Config/MainFrm.cs
+++ b/src/Bro.UI.Config/MainFrm.cs
@@ -317,7 +317,7 @@
private void OnLoginOK(bool isLogin)
{
- IsLogin = true;
+ IsLogin = isLogin;
}
#endregion
diff --git a/src/Bro.UI.Model.Winform/UI/DockContent/MenuFrmBase.cs b/src/Bro.UI.Model.Winform/UI/DockContent/MenuFrmBase.cs
index 90420b4..007a6db 100644
--- a/src/Bro.UI.Model.Winform/UI/DockContent/MenuFrmBase.cs
+++ b/src/Bro.UI.Model.Winform/UI/DockContent/MenuFrmBase.cs
@@ -81,7 +81,7 @@
#endregion
#region Login
- protected bool IsLogin { get; set; }
+ protected virtual bool IsLogin { get; set; }
public virtual void SetLoginStatus(bool isLogin)
{
--
Gitblit v1.8.0