using NVelocity.Runtime.Parser.Node; using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Reflection; using System.Text; using System.Threading.Tasks; namespace WinformDevFramework { public static class ExtensionMethod { public static Image Base64ToImage(this string base64str) { if (string.IsNullOrEmpty(base64str)) { return null; } byte[] imageBytes = Convert.FromBase64String(base64str); using (MemoryStream memoryStream = new MemoryStream(imageBytes)) { return Image.FromStream(memoryStream); } } public static string ImageToBase64(this Image image) { using (MemoryStream memoryStream = new MemoryStream()) { image.Save(memoryStream, image.RawFormat); byte[] imageBytes = memoryStream.ToArray(); return Convert.ToBase64String(imageBytes); } } /// /// combobox搜索功能 /// /// /// public static void TextUpdateFunction(this ComboBox cb, string[] strList) { try { { string s = cb.Text; //获取cb_material控件输入内 List strListNew = new List(); //清空combobox cb.DataSource = null; cb.Items.Clear(); //遍历全部原始数据 foreach (var item in strList) { // 根据输入的值模糊查询,将符合条件的值存储到新strListNew的集合里面 if (item.Contains(s)) { strListNew.Add(new string[] { "", item }); } } if (strListNew.Count >= 1) // 存在符合条件的内容 { //将符合条件的内容加到combobox中 //this.ComCB.Items.AddRange(strListNew.ToArray()); GetComCB(cb, strListNew); } // 不存在符合条件时 //设置光标位置,若不设置:光标位置始终保持在第一列,造成输入关键词的倒序排列 cb.SelectionStart = cb.Text.Length; // 设置光标位置,若不设置:光标位置始终保持在第一列,造成输入关键词的倒序排列 //cb.Cursor = Cursors.Default; //保持鼠标指针原来状态,有时候鼠标指针会被下拉框覆盖,所以要进行一次设置 cb.DroppedDown = true; // 自动弹出下拉框 cb.MaxDropDownItems = 8; // 自动弹出下拉框 } } catch (ArgumentOutOfRangeException e) { Console.WriteLine(e); } } /// /// 设置combobox的item值 /// /// ComboBox public static void GetComCB(ComboBox cb, List res) { ArrayList mylist = new ArrayList(); foreach (var item in res) { mylist.Add(item[1]); } cb.Items.AddRange(mylist.ToArray()); } } }