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

86 lines
2.3 KiB

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<T>(this ComboBox box, Func<T, bool> SetSelectIndex = null, int top = 10, params string[] extendFields)
where T : BaseInfo, new()
{
box.DisplayMember = "Name";
box.ValueMember = "ID";
var list = BaseInfoBL.GetList<T>(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<T>(this ComboBox box, List<T> 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);
}
}
}