using EAS.Services; using SOH.BLL; using SOH.Entities.DTO; using SOH.Kernel; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.IO; using System.Linq; using System.Text; using System.Windows.Forms; namespace SOH.Queuing.Setting { [ModuleAttribute(ModuleID = "8122211D-E738-440A-8DB1-80D48A192F1C", ModuleName = "布局维护")] public partial class frm_BuJuWeiHu : SOH.Window.baseChildForm { IPaiDuiJiaoHao vser = ServiceContainer.GetService(); public frm_BuJuWeiHu() { InitializeComponent(); } private void frm_BuJuWeiHu_Load(object sender, EventArgs e) { var lclist = vser.getLouceng(true); comb_lc.DataSource = lclist; } private void comb_lc_SelectedValueChanged(object sender, EventArgs e) { string lcid = comb_lc.SelectedValue.ToString(); var lcbj = vser.getbj(lcid); if (lcbj != null) { var bj = Image.FromStream(new MemoryStream(lcbj)); pic_lc.Image = bj; pic_lc.Width = bj.Width; pic_lc.Height = bj.Height; var wlks = vser.getwlkss(); int ilcid = int.Parse(lcid); var lcks = wlks.Where(t => t.lc_id == ilcid).ToList(); iks.Clear(); lcks.ForEach(t => { iks.Add(new img_ks { img_x = t.img_x, img_h = t.img_h, img_w = t.img_w, img_y = t.img_y, ksmc = t.ksmc, id = t.id }); }); } } List iks = new List(); private void btn_bj_Click(object sender, EventArgs e) { if (ofd_bj.ShowDialog() == DialogResult.OK) { pic_lc.Image = Image.FromFile(ofd_bj.FileName); } MemoryStream ms = new MemoryStream(); pic_lc.Image.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg); vser.uploadbj(comb_lc.SelectedValue.ToString(), ms.ToArray()); pic_lc.Width = pic_lc.Image.Width; pic_lc.Height = pic_lc.Image.Height; } Point p1; img_ks Curr_ks; string Curr_Action; private void pic_lc_MouseDown(object sender, MouseEventArgs e) { p1 = e.Location; for (int i = iks.Count - 1; i >= 0; i--) { var rect = new Rectangle(iks[i].img_x + iks[i].img_w - 3, iks[i].img_y + iks[i].img_h - 3, 5, 5); if (rect.Contains(p1)) { Curr_ks = iks[i]; Curr_Action = "resize"; return; } } if (Curr_ks == null) { for (int i = iks.Count - 1; i >= 0; i--) { var rect = new Rectangle(iks[i].img_x, iks[i].img_y, iks[i].img_w, iks[i].img_h); if (rect.Contains(p1)) { Curr_ks = iks[i]; Curr_Action = "move"; return; } } } } private void pic_lc_MouseMove(object sender, MouseEventArgs e) { /* System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(pic_lc.Image);*/ if (e.Button == MouseButtons.Left) { if (Curr_Action == "move") { Curr_ks.img_x += (e.Location.X - p1.X); Curr_ks.img_y += (e.Location.Y - p1.Y); p1 = e.Location; } else if (Curr_Action == "resize") { Curr_ks.img_w = (e.Location.X - Curr_ks.img_x); Curr_ks.img_h = (e.Location.Y - Curr_ks.img_y); } } foreach (var k in iks) { var rect = new Rectangle(k.img_x + k.img_w - 3, k.img_y + k.img_h - 3, 5, 5); if (rect.Contains(e.Location)) { this.Cursor = Cursors.SizeNWSE; break; } else { this.Cursor = Cursors.Default; } } pic_lc.Invalidate(); } private void pic_lc_Paint(object sender, PaintEventArgs e) { // e.Graphics.DrawLine(Pens.Black, 10, 10, 40, 40); var g = e.Graphics; foreach (var k in iks) { g.DrawRectangle(Pens.DarkGray, k.img_x, k.img_y, k.img_w, k.img_h); g.FillRectangle(Brushes.ForestGreen, k.img_x + 1, k.img_y + 1, k.img_w - 1, k.img_h - 1); g.FillRectangle(Brushes.DarkGray, k.img_x + k.img_w - 3, k.img_y + k.img_h - 3, 5, 5); g.DrawString(k.ksmc, new Font("微软雅黑", 12, FontStyle.Bold), Brushes.Black, new Rectangle(k.img_x, k.img_y, k.img_w, k.img_h),new StringFormat(StringFormatFlags.NoWrap)); } } private void pic_lc_MouseUp(object sender, MouseEventArgs e) { if (!string.IsNullOrEmpty(Curr_Action)) { vser.updateKs(Curr_ks); } Curr_ks = null; Curr_Action = ""; } } }