using ButcherFactory.BO; using ButcherFactory.BO.LocalBL; using System; using System.Collections.Generic; using System.Linq; using System.Speech.Synthesis; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace ButcherFactory.Utils { public static class ControlsUtil { public static void EBindComboBox(this ComboBox box, Func SetSelectIndex = null, int top = 10, params string[] extendFields) where T : BaseInfo, new() { box.DisplayMember = "Name"; box.ValueMember = "ID"; var list = BaseInfoBL.GetList(top, extendFields: extendFields); box.DataSource = list; if (SetSelectIndex != null) { var idx = list.FindIndex(x => SetSelectIndex(x)); if (idx > 0) box.SelectedIndex = idx; } box.Refresh(); } public static void EBindComboBox(this ComboBox box, List source) where T : BaseInfo, new() { box.DisplayMember = "Name"; box.ValueMember = "ID"; box.DataSource = source; box.Refresh(); } public static Form GetParentFormm(Control control) { if (control.Parent != null) { if (control.Parent is Form) { return control.Parent as Form; ; } else { return GetParentFormm(control.Parent); } } return control as Form; } public static string ParseCode(string url) { if (url.Contains("?")) { var arr = url.Split(new char[] { '?' }); if (arr.Length > 1) { var list = arr[1].Split(new char[] { '&' }, StringSplitOptions.RemoveEmptyEntries); foreach (var item in list) { var l = item.Split(new char[] { '=' }, StringSplitOptions.RemoveEmptyEntries); if (l.Length == 2 && l[0].ToUpper() == "CODE") return l[1].Trim(); } return string.Empty; } return string.Empty; } return url.Trim(); } private static readonly SpeechSynthesizer _speechSynthesizer = new SpeechSynthesizer() { Rate = 1, Volume = 100 }; public static void PlanVoice(string text) { if (!string.IsNullOrEmpty(text)) _speechSynthesizer.SpeakAsync(text); } } }