* 增加几个通用函数
This commit is contained in:
parent
a1b1b91049
commit
0aeff7da26
@ -20,6 +20,7 @@
|
|||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
|
using System.Collections.Concurrent;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.ComponentModel;
|
using System.ComponentModel;
|
||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
@ -543,12 +544,64 @@ namespace Sunny.UI
|
|||||||
public static void Disabled(this Control ctrl)
|
public static void Disabled(this Control ctrl)
|
||||||
{
|
{
|
||||||
ctrl.Enabled = false;
|
ctrl.Enabled = false;
|
||||||
ctrl.Hide();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void Invisible(this Control ctrl)
|
public static void Invisible(this Control ctrl)
|
||||||
{
|
{
|
||||||
ctrl.Visible = false;
|
ctrl.Visible = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static ConcurrentDictionary<string, Point> DragCtrlsPosition = new ConcurrentDictionary<string, Point>();
|
||||||
|
private static ConcurrentDictionary<string, bool> DragCtrlsMouseDown = new ConcurrentDictionary<string, bool>();
|
||||||
|
private static List<string> DragCtrlsAlreadyDrag = new List<string>();
|
||||||
|
|
||||||
|
public static void AddDragEvent(this Control ctrl)
|
||||||
|
{
|
||||||
|
if (DragCtrlsPosition.NotContainsKey(ctrl.Name))
|
||||||
|
{
|
||||||
|
DragCtrlsPosition.TryAdd(ctrl.Name, new Point());
|
||||||
|
DragCtrlsMouseDown.TryAdd(ctrl.Name, false);
|
||||||
|
|
||||||
|
if (DragCtrlsAlreadyDrag.Contains(ctrl.Name)) return;
|
||||||
|
DragCtrlsAlreadyDrag.Add(ctrl.Name);
|
||||||
|
|
||||||
|
ctrl.MouseDown += (s, e) =>
|
||||||
|
{
|
||||||
|
if (DragCtrlsMouseDown.ContainsKey(ctrl.Name))
|
||||||
|
DragCtrlsMouseDown[ctrl.Name] = true;
|
||||||
|
|
||||||
|
if (DragCtrlsPosition.ContainsKey(ctrl.Name))
|
||||||
|
DragCtrlsPosition[ctrl.Name] = new Point(e.X, e.Y);
|
||||||
|
};
|
||||||
|
|
||||||
|
ctrl.MouseUp += (s, e) =>
|
||||||
|
{
|
||||||
|
if (DragCtrlsMouseDown.ContainsKey(ctrl.Name))
|
||||||
|
DragCtrlsMouseDown[ctrl.Name] = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
ctrl.MouseMove += (s, e) =>
|
||||||
|
{
|
||||||
|
if (DragCtrlsMouseDown.ContainsKey(ctrl.Name) && DragCtrlsPosition.ContainsKey(ctrl.Name))
|
||||||
|
{
|
||||||
|
if (DragCtrlsMouseDown[ctrl.Name])
|
||||||
|
{
|
||||||
|
int left = ctrl.Left + e.X - DragCtrlsPosition[ctrl.Name].X;
|
||||||
|
int top = ctrl.Top + e.Y - DragCtrlsPosition[ctrl.Name].Y;
|
||||||
|
ctrl.Location = new Point(left, top);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void RemoveDragEvent(this Control ctrl)
|
||||||
|
{
|
||||||
|
if (DragCtrlsPosition.ContainsKey(ctrl.Name))
|
||||||
|
{
|
||||||
|
DragCtrlsPosition.TryRemove(ctrl.Name, out _);
|
||||||
|
DragCtrlsMouseDown.TryRemove(ctrl.Name, out _);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -191,20 +191,20 @@ namespace Sunny.UI.Win32
|
|||||||
|
|
||||||
internal class NatualOrderingComparer : IComparer<string>
|
internal class NatualOrderingComparer : IComparer<string>
|
||||||
{
|
{
|
||||||
static readonly Int32 NORM_IGNORECASE = 0x00000001;
|
//static readonly Int32 NORM_IGNORECASE = 0x00000001;
|
||||||
static readonly Int32 NORM_IGNORENONSPACE = 0x00000002;
|
//static readonly Int32 NORM_IGNORENONSPACE = 0x00000002;
|
||||||
static readonly Int32 NORM_IGNORESYMBOLS = 0x00000004;
|
//static readonly Int32 NORM_IGNORESYMBOLS = 0x00000004;
|
||||||
static readonly Int32 LINGUISTIC_IGNORECASE = 0x00000010;
|
//static readonly Int32 LINGUISTIC_IGNORECASE = 0x00000010;
|
||||||
static readonly Int32 LINGUISTIC_IGNOREDIACRITIC = 0x00000020;
|
//static readonly Int32 LINGUISTIC_IGNOREDIACRITIC = 0x00000020;
|
||||||
static readonly Int32 NORM_IGNOREKANATYPE = 0x00010000;
|
//static readonly Int32 NORM_IGNOREKANATYPE = 0x00010000;
|
||||||
static readonly Int32 NORM_IGNOREWIDTH = 0x00020000;
|
//static readonly Int32 NORM_IGNOREWIDTH = 0x00020000;
|
||||||
static readonly Int32 NORM_LINGUISTIC_CASING = 0x08000000;
|
//static readonly Int32 NORM_LINGUISTIC_CASING = 0x08000000;
|
||||||
static readonly Int32 SORT_STRINGSORT = 0x00001000;
|
//static readonly Int32 SORT_STRINGSORT = 0x00001000;
|
||||||
static readonly Int32 SORT_DIGITSASNUMBERS = 0x00000008;
|
static readonly Int32 SORT_DIGITSASNUMBERS = 0x00000008;
|
||||||
|
|
||||||
static readonly String LOCALE_NAME_USER_DEFAULT = null;
|
//static readonly String LOCALE_NAME_USER_DEFAULT = null;
|
||||||
static readonly String LOCALE_NAME_INVARIANT = String.Empty;
|
static readonly String LOCALE_NAME_INVARIANT = String.Empty;
|
||||||
static readonly String LOCALE_NAME_SYSTEM_DEFAULT = "!sys-default-locale";
|
//static readonly String LOCALE_NAME_SYSTEM_DEFAULT = "!sys-default-locale";
|
||||||
|
|
||||||
readonly String locale;
|
readonly String locale;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user