You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

186 lines
5.2 KiB
C#

9 months ago
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using DevComponents.DotNetBar;
using System.ComponentModel.Design;
namespace POSV
{
[ToolboxItem(false)]
public partial class BaseUserControl : UserControl
{
private NLog.Logger logger = null;
public BaseUserControl()
{
InitializeComponent();
//减少闪烁
SetStyles();
}
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
if (this.DesignMode) return;
logger = NLog.LogManager.GetLogger(GetType().FullName);
}
#region 减少闪烁
private void SetStyles()
{
SetStyle(
ControlStyles.UserPaint |
ControlStyles.AllPaintingInWmPaint |
ControlStyles.OptimizedDoubleBuffer |
ControlStyles.ResizeRedraw |
ControlStyles.DoubleBuffer , true);
//强制分配样式重新应用到控件上
UpdateStyles();
base.AutoScaleMode = AutoScaleMode.None;
}
#endregion
protected Font GetSystemFont(SystemFont fontSize)
{
Font result = Constant.DEFAULT_FONT;
switch (fontSize)
{
case SystemFont.:
{
result = Constant.DEFAULT_FONT;
}
break;
case SystemFont.:
{
result = Constant.NORMAL_FONT;
}
break;
case SystemFont.:
{
result = Constant.SMALL_FONT;
}
break;
case SystemFont.:
{
result = Constant.BIG_FONT;
}
break;
}
return result;
}
protected NLog.Logger LOGGER
{
get { return logger; }
}
protected void ShowMessage(LabelX label , string message)
{
if (this.IsDisposed || !this.IsHandleCreated)
{
// some exceptional condition:
// handle in whatever way is appropriate for your app
return;
}
LOGGER.Debug(message);
this.Invoke(new Action(() => {
label.Symbol = "\uf05a";
label.SymbolColor = Color.RoyalBlue;
label.ForeColor = SystemColors.ControlText;
label.Text = message;
label.Refresh();
}));
}
protected void ShowMessage(LabelX label , string message , bool error)
{
if (this.IsDisposed || (!this.IsHandleCreated && !this.FindForm().IsHandleCreated))
{
// some exceptional condition:
// handle in whatever way is appropriate for your app
return;
}
LOGGER.Debug(message);
this.Invoke(new Action(() => {
label.Symbol = "\uf05a";
label.SymbolColor = Color.RoyalBlue;
label.ForeColor = SystemColors.ControlText;
if (error)
{
label.Symbol = "\uf05c";
label.SymbolColor = Color.Blue;
label.ForeColor = Color.Blue;
}
label.Text = message;
label.Refresh();
}));
}
protected new bool DesignMode
{
get
{
bool returnFlag = false;
//#if DEBUG
// if (System.ComponentModel.LicenseManager.UsageMode == System.ComponentModel.LicenseUsageMode.Designtime)
// {
// returnFlag = true;
// }
// else if (System.Diagnostics.Process.GetCurrentProcess().ProcessName.ToUpper().Equals("DEVENV"))
// {
// returnFlag = true;
// }
//#endif
if (this.GetService(typeof(IDesignerHost)) != null || System.ComponentModel.LicenseManager.UsageMode == System.ComponentModel.LicenseUsageMode.Designtime)
{
returnFlag = true;
}
else
{
returnFlag = false;
}
return returnFlag;
}
}
protected virtual void OnInputGotFocus(object sender , EventArgs e)
{
//触摸屏模式下自动关闭虚拟键盘
IntPtr hwnd = WindowsAPI.FindWindow("IPTip_Main_Window" , null);
if (hwnd != IntPtr.Zero)
{
WindowsAPI.SendMessage(hwnd , WindowsAPI.WM_SYSCOMMAND , WindowsAPI.SC_CLOSE , 0);
}
}
}
}