tijian_jichuang/Code/SOH.Queuing.Setting/frm_BuJuWeiHu.cs
2025-02-20 11:54:48 +08:00

157 lines
5.4 KiB
C#

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<IPaiDuiJiaoHao>();
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<img_ks> iks = new List<img_ks>();
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 = "";
}
}
}