diff --git a/Bin/net40/SunnyUI.Demo.exe b/Bin/net40/SunnyUI.Demo.exe index 653a6711..bbfbeaa9 100644 Binary files a/Bin/net40/SunnyUI.Demo.exe and b/Bin/net40/SunnyUI.Demo.exe differ diff --git a/Bin/net40/SunnyUI.dll b/Bin/net40/SunnyUI.dll index 92064853..4319e8fe 100644 Binary files a/Bin/net40/SunnyUI.dll and b/Bin/net40/SunnyUI.dll differ diff --git a/Bin/net462/SunnyUI.dll b/Bin/net462/SunnyUI.dll index c18a17a2..98d989e6 100644 Binary files a/Bin/net462/SunnyUI.dll and b/Bin/net462/SunnyUI.dll differ diff --git a/Bin/net5.0-windows/SunnyUI.dll b/Bin/net5.0-windows/SunnyUI.dll index d4c8c12f..94d183e4 100644 Binary files a/Bin/net5.0-windows/SunnyUI.dll and b/Bin/net5.0-windows/SunnyUI.dll differ diff --git a/Bin/net5.0-windows/ref/SunnyUI.dll b/Bin/net5.0-windows/ref/SunnyUI.dll index c3ee4821..82b65078 100644 Binary files a/Bin/net5.0-windows/ref/SunnyUI.dll and b/Bin/net5.0-windows/ref/SunnyUI.dll differ diff --git a/Bin/netcoreapp3.1/SunnyUI.dll b/Bin/netcoreapp3.1/SunnyUI.dll index a71debdf..c1efa907 100644 Binary files a/Bin/netcoreapp3.1/SunnyUI.dll and b/Bin/netcoreapp3.1/SunnyUI.dll differ diff --git a/SunnyUI.Demo/Industrial/FMeter.Designer.cs b/SunnyUI.Demo/Industrial/FMeter.Designer.cs index ed46571e..6cba1b96 100644 --- a/SunnyUI.Demo/Industrial/FMeter.Designer.cs +++ b/SunnyUI.Demo/Industrial/FMeter.Designer.cs @@ -36,7 +36,7 @@ namespace Sunny.UI.Demo this.uiLine6 = new Sunny.UI.UILine(); this.uiRoundMeter2 = new Sunny.UI.UIRoundMeter(); this.uiRoundMeter1 = new Sunny.UI.UIRoundMeter(); - this.timer1 = new System.Windows.Forms.Timer(this.components); + this.uiMillisecondTimer1 = new Sunny.UI.UIMillisecondTimer(this.components); this.SuspendLayout(); // // uiAnalogMeter1 @@ -104,9 +104,11 @@ namespace Sunny.UI.Demo this.uiRoundMeter1.TabIndex = 63; this.uiRoundMeter1.Text = "uiRoundMeter1"; // - // timer1 + // uiMillisecondTimer1 // - this.timer1.Tick += new System.EventHandler(this.timer1_Tick); + this.uiMillisecondTimer1.Interval = 100; + this.uiMillisecondTimer1.TagString = null; + this.uiMillisecondTimer1.Tick += new System.EventHandler(this.uiMillisecondTimer1_Tick); // // FMeter // @@ -133,6 +135,6 @@ namespace Sunny.UI.Demo private UIRoundMeter uiRoundMeter2; private UILine uiLine6; private UIRoundMeter uiRoundMeter1; - private System.Windows.Forms.Timer timer1; + private UIMillisecondTimer uiMillisecondTimer1; } } \ No newline at end of file diff --git a/SunnyUI.Demo/Industrial/FMeter.cs b/SunnyUI.Demo/Industrial/FMeter.cs index b2a00611..051e91b3 100644 --- a/SunnyUI.Demo/Industrial/FMeter.cs +++ b/SunnyUI.Demo/Industrial/FMeter.cs @@ -1,4 +1,6 @@ -namespace Sunny.UI.Demo +using System; + +namespace Sunny.UI.Demo { public partial class FMeter : UIPage { @@ -12,15 +14,17 @@ public override void Init() { value = 0; - timer1.ReStart(); + uiMillisecondTimer1.ReStart(); } - private void timer1_Tick(object sender, System.EventArgs e) + private void uiMillisecondTimer1_Tick(object sender, System.EventArgs e) { value++; uiRoundMeter1.Angle = value * 10; uiRoundMeter2.Angle = value * 10; uiAnalogMeter1.Value = value; + + Console.WriteLine(DateTime.Now.ToString(DateTimeEx.DateTimeFormatEx)); } } } diff --git a/SunnyUI.Demo/Industrial/FMeter.resx b/SunnyUI.Demo/Industrial/FMeter.resx index f314f57b..f5b04402 100644 --- a/SunnyUI.Demo/Industrial/FMeter.resx +++ b/SunnyUI.Demo/Industrial/FMeter.resx @@ -317,351 +317,351 @@ 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 - - 17, 17 + + 107, 17 \ No newline at end of file diff --git a/SunnyUI.Net5.Demo/bin/net5.0-windows/SunnyUI.Common.dll b/SunnyUI.Net5.Demo/bin/net5.0-windows/SunnyUI.Common.dll deleted file mode 100644 index f4c2c627..00000000 Binary files a/SunnyUI.Net5.Demo/bin/net5.0-windows/SunnyUI.Common.dll and /dev/null differ diff --git a/SunnyUI.Net5.Demo/bin/net5.0-windows/SunnyUI.Net5.Demo.deps.json b/SunnyUI.Net5.Demo/bin/net5.0-windows/SunnyUI.Net5.Demo.deps.json deleted file mode 100644 index 9272b498..00000000 --- a/SunnyUI.Net5.Demo/bin/net5.0-windows/SunnyUI.Net5.Demo.deps.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "runtimeTarget": { - "name": ".NETCoreApp,Version=v5.0", - "signature": "" - }, - "compilationOptions": {}, - "targets": { - ".NETCoreApp,Version=v5.0": { - "SunnyUI.Net5.Demo/3.0.6": { - "dependencies": { - "SunnyUI": "3.0.6" - }, - "runtime": { - "SunnyUI.Net5.Demo.dll": {} - } - }, - "SunnyUI/3.0.6": { - "dependencies": { - "SunnyUI.Common": "3.0.6" - }, - "runtime": { - "lib/net5.0-windows7.0/SunnyUI.dll": { - "assemblyVersion": "3.0.6.0", - "fileVersion": "3.0.6.0" - } - } - }, - "SunnyUI.Common/3.0.6": { - "runtime": { - "lib/net5.0/SunnyUI.Common.dll": { - "assemblyVersion": "3.0.6.0", - "fileVersion": "3.0.6.0" - } - } - } - } - }, - "libraries": { - "SunnyUI.Net5.Demo/3.0.6": { - "type": "project", - "serviceable": false, - "sha512": "" - }, - "SunnyUI/3.0.6": { - "type": "package", - "serviceable": true, - "sha512": "sha512-lS2AD3CrSMRnzwjrh9FxNYgU4CzPd7+XYwaX5TgurnDAFWkLGTZrLn4q05pDB/4TqwzAPcUJfwSlIgMtFtUEHg==", - "path": "sunnyui/3.0.6", - "hashPath": "sunnyui.3.0.6.nupkg.sha512" - }, - "SunnyUI.Common/3.0.6": { - "type": "package", - "serviceable": true, - "sha512": "sha512-yzYi+kU3zvox8QLQ34Hhgj3rg6nniwE2Tbt77sDDV/gM2++jqVCVYVIOwvd0p/eMqu1UrNsDQax6L8AGkfZMyA==", - "path": "sunnyui.common/3.0.6", - "hashPath": "sunnyui.common.3.0.6.nupkg.sha512" - } - } -} \ No newline at end of file diff --git a/SunnyUI.Net5.Demo/bin/net5.0-windows/SunnyUI.Net5.Demo.dll b/SunnyUI.Net5.Demo/bin/net5.0-windows/SunnyUI.Net5.Demo.dll deleted file mode 100644 index 6209ece6..00000000 Binary files a/SunnyUI.Net5.Demo/bin/net5.0-windows/SunnyUI.Net5.Demo.dll and /dev/null differ diff --git a/SunnyUI.Net5.Demo/bin/net5.0-windows/SunnyUI.Net5.Demo.exe b/SunnyUI.Net5.Demo/bin/net5.0-windows/SunnyUI.Net5.Demo.exe deleted file mode 100644 index 33b9f47d..00000000 Binary files a/SunnyUI.Net5.Demo/bin/net5.0-windows/SunnyUI.Net5.Demo.exe and /dev/null differ diff --git a/SunnyUI.Net5.Demo/bin/net5.0-windows/SunnyUI.Net5.Demo.runtimeconfig.dev.json b/SunnyUI.Net5.Demo/bin/net5.0-windows/SunnyUI.Net5.Demo.runtimeconfig.dev.json deleted file mode 100644 index 14df11c9..00000000 --- a/SunnyUI.Net5.Demo/bin/net5.0-windows/SunnyUI.Net5.Demo.runtimeconfig.dev.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "runtimeOptions": { - "additionalProbingPaths": [ - "C:\\Users\\Sunny\\.dotnet\\store\\|arch|\\|tfm|", - "C:\\Users\\Sunny\\.nuget\\packages", - "C:\\Program Files\\dotnet\\sdk\\NuGetFallbackFolder" - ] - } -} \ No newline at end of file diff --git a/SunnyUI.Net5.Demo/bin/net5.0-windows/SunnyUI.Net5.Demo.runtimeconfig.json b/SunnyUI.Net5.Demo/bin/net5.0-windows/SunnyUI.Net5.Demo.runtimeconfig.json deleted file mode 100644 index dae617c0..00000000 --- a/SunnyUI.Net5.Demo/bin/net5.0-windows/SunnyUI.Net5.Demo.runtimeconfig.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "runtimeOptions": { - "tfm": "net5.0", - "framework": { - "name": "Microsoft.WindowsDesktop.App", - "version": "5.0.0" - } - } -} \ No newline at end of file diff --git a/SunnyUI.Net5.Demo/bin/net5.0-windows/SunnyUI.dll b/SunnyUI.Net5.Demo/bin/net5.0-windows/SunnyUI.dll deleted file mode 100644 index 74762afb..00000000 Binary files a/SunnyUI.Net5.Demo/bin/net5.0-windows/SunnyUI.dll and /dev/null differ diff --git a/SunnyUI.Net5.Demo/bin/net5.0-windows/ref/SunnyUI.Net5.Demo.dll b/SunnyUI.Net5.Demo/bin/net5.0-windows/ref/SunnyUI.Net5.Demo.dll deleted file mode 100644 index 96e93784..00000000 Binary files a/SunnyUI.Net5.Demo/bin/net5.0-windows/ref/SunnyUI.Net5.Demo.dll and /dev/null differ diff --git a/SunnyUI/Controls/UIHeaderButton.cs b/SunnyUI/Controls/UIHeaderButton.cs index cbb3889a..d26b4ba2 100644 --- a/SunnyUI/Controls/UIHeaderButton.cs +++ b/SunnyUI/Controls/UIHeaderButton.cs @@ -114,7 +114,7 @@ namespace Sunny.UI [Description("多页面框架的页面索引"), Category("SunnyUI")] public int PageIndex { get; set; } - public Color symbolColor = Color.White; + private Color symbolColor = Color.White; [DefaultValue(typeof(Color), "White")] [Description("字体图标颜色"), Category("SunnyUI")] @@ -361,7 +361,7 @@ namespace Sunny.UI } } - public TextImageRelation textImageRelation = TextImageRelation.ImageAboveText; + private TextImageRelation textImageRelation = TextImageRelation.ImageAboveText; [DefaultValue(TextImageRelation.ImageAboveText)] [Description("指定图像与文本的相对位置"), Category("SunnyUI")] diff --git a/SunnyUI/Controls/UIListBox.cs b/SunnyUI/Controls/UIListBox.cs index f32f4d61..eb67aa86 100644 --- a/SunnyUI/Controls/UIListBox.cs +++ b/SunnyUI/Controls/UIListBox.cs @@ -279,13 +279,13 @@ namespace Sunny.UI bar.Left = Width - bar.Width - 2; } - private void Listbox_BeforeDrawItem(object sender, ListBox.ObjectCollection items, DrawItemEventArgs e) + private void Listbox_BeforeDrawItem(object sender, ObjectCollection items, DrawItemEventArgs e) { if (Items.Count != LastCount) { listbox.SetScrollInfo(); LastCount = Items.Count; - ItemsCountChange?.Invoke(this, null); + ItemsCountChange?.Invoke(this, EventArgs.Empty); } } @@ -390,10 +390,10 @@ namespace Sunny.UI [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)] [Localizable(true)] - [Editor("System.Windows.Forms.Design.ListControlStringCollectionEditor, System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", typeof(UITypeEditor))] + [Editor("System.Windows.Forms.Design.ListControlStringCollectionEditor", typeof(UITypeEditor))] [MergableProperty(false)] [Description("列表项"), Category("SunnyUI")] - public ListBox.ObjectCollection Items => listbox.Items; + public ObjectCollection Items => listbox.Items; [Browsable(false)] public int Count => Items.Count; @@ -811,7 +811,7 @@ namespace Sunny.UI Color foreColor = isSelected ? ItemSelectForeColor : ForeColor; Rectangle rect = new Rectangle(e.Bounds.X, e.Bounds.Y, e.Bounds.Width - 1, e.Bounds.Height - 1); - string showText = string.Empty; + string showText; if (DisplayMember.IsNullOrEmpty()) { showText = Items[e.Index].ToString(); diff --git a/SunnyUI/Controls/UIMillisecondTimer.cs b/SunnyUI/Controls/UIMillisecondTimer.cs new file mode 100644 index 00000000..0e4310b7 --- /dev/null +++ b/SunnyUI/Controls/UIMillisecondTimer.cs @@ -0,0 +1,188 @@ +/****************************************************************************** + * SunnyUI 开源控件库、工具类库、扩展类库、多页面开发框架。 + * CopyRight (C) 2012-2021 ShenYongHua(沈永华). + * QQ群:56829229 QQ:17612584 EMail:SunnyUI@QQ.Com + * + * Blog: https://www.cnblogs.com/yhuse + * Gitee: https://gitee.com/yhuse/SunnyUI + * GitHub: https://github.com/yhuse/SunnyUI + * + * SunnyUI.dll can be used for free under the GPL-3.0 license. + * If you use this code, please keep this note. + * 如果您使用此代码,请保留此说明。 + ****************************************************************************** + * 文件名称: UIMillisecondTimer.cs + * 文件说明: 毫秒定时器 + * 当前版本: V3.0 + * 创建日期: 2021-08-15 + * + * 2021-08-15: V3.0.6 增加文件说明 +******************************************************************************/ + +using Sunny.UI.Win32; +using System; +using System.ComponentModel; +using System.Runtime.InteropServices; + +namespace Sunny.UI +{ + [DefaultEvent("Tick")] + [DefaultProperty("Interval")] + public class UIMillisecondTimer : Component + { + public event EventHandler Tick; + + /// + /// Initializes a new instance of the UIMillisecondTimer. /> + /// class. + /// + public UIMillisecondTimer() + { + int result = WinMM.timeGetDevCaps(ref TimeCaps, Marshal.SizeOf(TimeCaps)); + if (result != WinMM.TIMERR_NOERROR) + { + throw new Exception("毫秒定时器初始化失败"); + } + + Version = UIGlobal.Version; + interval = 50; + SetEventCallback = DoSetEventCallback; + } + + /// + /// Initializes a new instance of the UIMillisecondTimer class with the specified container. + /// + public UIMillisecondTimer(IContainer container) : this() + { + if (container == null) + { + throw new ArgumentNullException(nameof(container)); + } + + container.Add(this); + } + + public static bool CanUse() + { + TIMECAPS timeCaps = new TIMECAPS(); + int result = WinMM.timeGetDevCaps(ref timeCaps, Marshal.SizeOf(timeCaps)); + return result != WinMM.TIMERR_NOERROR; + } + + protected override void Dispose(bool disposing) + { + Stop(); + base.Dispose(disposing); + } + + private void DoSetEventCallback(int uTimerID, uint uMsg, uint dwUser, UIntPtr dw1, UIntPtr dw2) + { + Tick?.Invoke(this, EventArgs.Empty); + } + + [ + Localizable(false), + Bindable(true), + DefaultValue(null), + TypeConverter(typeof(StringConverter)) + ] + public object Tag { get; set; } + + public string TagString { get; set; } + + /// + /// 版本 + /// + public string Version { get; } + + private readonly TIMECAPS TimeCaps; + + private int interval; + + /// + /// Occurs when the specified timer interval has elapsed and the timer is enabled. + /// + [DefaultValue(50)] + public int Interval + { + get => interval; + set + { + if (interval == value || value < TimeCaps.wPeriodMin || value > TimeCaps.wPeriodMax) + return; + + interval = value; + + if (Enabled) + { + ReStart(); + } + } + } + + private bool enabled; + + /// + /// Indicates whether the timer is running. + /// + [DefaultValue(false)] + public bool Enabled + { + get => enabled; + set + { + if (enabled == value) return; + + if (!enabled) + { + int result = WinMM.timeSetEvent(interval, Math.Min(1, TimeCaps.wPeriodMin), SetEventCallback, 0, WinMM.TIME_MS); + if (result == 0) + { + throw new Exception("毫秒定时器启动失败"); + } + + TimerID = result; + } + else + { + if (TimerID > 0) + { + WinMM.timeKillEvent(TimerID); + TimerID = 0; + } + } + + enabled = value; + } + } + + private readonly WinMM.TimerSetEventCallback SetEventCallback; + private int TimerID; + + /// + /// 开启定时器 + /// + public void Start() + { + Enabled = true; + } + + /// + /// 重启定时器 + /// + public void ReStart() + { + Enabled = false; + Enabled = true; + } + + /// + /// 停止定时器 + /// + public void Stop() + { + Enabled = false; + } + + } +} diff --git a/SunnyUI/Controls/UINavBar.cs b/SunnyUI/Controls/UINavBar.cs index 7a0ab37d..9d73ac7e 100644 --- a/SunnyUI/Controls/UINavBar.cs +++ b/SunnyUI/Controls/UINavBar.cs @@ -24,6 +24,7 @@ using System; using System.ComponentModel; using System.Drawing; +using System.Drawing.Design; using System.Windows.Forms; namespace Sunny.UI @@ -299,6 +300,7 @@ namespace Sunny.UI [Localizable(true)] [MergableProperty(false)] [Description("菜单栏显示节点集合"), Category("SunnyUI")] + [Editor("System.Windows.Forms.Design.TreeNodeCollectionEditor", typeof(UITypeEditor))] public TreeNodeCollection Nodes => Menu.Nodes; [DefaultValue(null)] diff --git a/SunnyUI/Win32/Win32.Added.cs b/SunnyUI/Win32/Win32.Added.cs index 5b8e68dd..6d578f37 100644 --- a/SunnyUI/Win32/Win32.Added.cs +++ b/SunnyUI/Win32/Win32.Added.cs @@ -102,4 +102,12 @@ namespace Sunny.UI.Win32 public static extern int GetPrivateProfileString(byte[] section, byte[] key, byte[] def, byte[] retVal, int size, string filePath); } + + public partial class WinMM + { + [DllImport("winmm.dll")] + public static extern int timeSetEvent(int uDelay, int uResolution, TimerSetEventCallback fptc, int dwUser, int uFlags); + + public delegate void TimerSetEventCallback(int uTimerID, uint uMsg, uint dwUser, UIntPtr dw1, UIntPtr dw2); + } } diff --git a/SunnyUI/Win32/Win32.Multimedia.cs b/SunnyUI/Win32/Win32.Multimedia.cs index 83aa2953..9e46ba52 100644 --- a/SunnyUI/Win32/Win32.Multimedia.cs +++ b/SunnyUI/Win32/Win32.Multimedia.cs @@ -523,7 +523,7 @@ namespace Sunny.UI.Win32 [DllImport("lz32")] public static extern int LZSeek(HANDLE hfFile, int lOffset, int nOrigin); [DllImport("lz32")] public static extern void LZClose(HANDLE hfFile); } - public abstract class WinMM + public partial class WinMM { [DllImport("winmm")] public static extern int mciGetYieldProc(int mciId, ref int pdwYieldData); [DllImport("winmm")] public static extern int mciSetYieldProc(int mciId, int fpYieldProc, int dwYieldData);